Python“变量名”本身是否占用内存空间

Python“变量名”本身是否占用内存空间

昨天被一个问题缠到凌晨四点。我就是喜欢钻牛角尖。国内关于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

作者:z小璇

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

💎 相关推荐

宝骏汽车报价
亚洲365bet网址

宝骏汽车报价

📅 06-29 👁️ 3308
滚筒洗衣机门锁卡住了怎么解锁?
365平台官方版下载

滚筒洗衣机门锁卡住了怎么解锁?

📅 06-30 👁️ 6946
13、流浪日记完美攻略
亚洲365bet网址

13、流浪日记完美攻略

📅 07-14 👁️ 121