Python“變量名”本身是否占用內存空間


昨天被一個問題纏到凌晨四點。我就是喜歡鑽牛角尖。國內關於python的資料太少了。

在python中a=100,變量a在內存中是否占空間。

我剛開始是和C,C++一起聯想的,后面發現不對。

先說結論(如果不對請各位大佬指出),賦值之后變量名a本身在內存中是占有空間的。甚至嚴格意義上來說a並不是一個變量名(當然也有可能只有編譯的時候占用,這塊等我再研究研究)

 

C、C++中的變量

C/C++中的變量的概念是面向內存的。

所以你要聲明一個變量:表明存儲的格式(整數,浮點),對象值,以及一個永久不變的名字指向這個變量。

 

python只有name和object

a = 10

  • 這個語句中 a 是一個名字, 10 是一個object
  • 這個語句其實並不是什么賦值
  • 而是干了以下三件事
  1. 創建name a
  2. 創建object 10
  3. 將name a 關聯到 10這個object
  • 以后就可以用a來調用10這個object

Python的數據模型(參見“https://link.zhihu.com/?target=http%3A//docspy3zh.readthedocs.io/en/latest/reference/datamodel.html”)

    • python所有的數據都用object(對象)表示
    • 對象在創建時有以下屬性
      • 標識,唯一識別,不可改變,通過id(obj)查看
      • 類型,不可改變
      • 值,根據類型形式分為mutable(可變),immutable(不可變)

 

當然這張圖看起來更直觀

 

 

 

 
參考鏈接:
作者:蔡海洋
鏈接:https://www.zhihu.com/question/25090486/answer/266513336

作者:AI研習社
鏈接https://cloud.tencent.com/developer/article/1544936
作者:z小璇

 https://blog.csdn.net/as480133937/article/details/87305247

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM