昨天被一個問題纏到凌晨四點。我就是喜歡鑽牛角尖。國內關於python的資料太少了。
在python中a=100,變量a在內存中是否占空間。
我剛開始是和C,C++一起聯想的,后面發現不對。
先說結論(如果不對請各位大佬指出),賦值之后變量名a本身在內存中是占有空間的。甚至嚴格意義上來說a並不是一個變量名(當然也有可能只有編譯的時候占用,這塊等我再研究研究)
C、C++中的變量
C/C++中的變量的概念是面向內存的。
所以你要聲明一個變量:表明存儲的格式(整數,浮點),對象值,以及一個永久不變的名字指向這個變量。
python只有name和object
a = 10
- 這個語句中 a 是一個名字, 10 是一個object
- 這個語句其實並不是什么賦值
- 而是干了以下三件事
- 創建name a
- 創建object 10
- 將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
鏈接https://cloud.tencent.com/developer/article/1544936
作者:z小璇