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