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