[oeasy]python047_变量在内存内的什么位置_物理地址_id_内存地址
原创
©著作权归作者所有:来自51CTO博客作者overmind1980的原创作品,请联系作者获取转载授权,否则将追究法律责任
变量在内存内的什么位置_物理地址_id_内存地址_物理地址
回忆上次内容
问问ai
id
id
- s1的id是一长串数字
- 数值 和 截图不一样 很正常
- 只要是 一串数字 就对了
问问ai
内存
- 随机存储器
- Random Access Memory
- RAM
- 其中变量 也存储在
内存中
- 每次运行的状态不同
- 分配的位置也不同
内存地址
唯一标识
- 对象 的
唯一
标记 - the identity of an object
- 不断变化 的 对象
- 每个 对象 都有
唯一
标记idnetity
测试
s1 = "oeasy"
s2 = "o2z"
print(id(s1))
print(id(s2))
相同对象
s1 = "oeasy"
s2 = "oeasy"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2) )
再查询手册
多次引用
- 又 给s1 再赋个
新
值 - 那么 s1
- 会 引用
新
的地址 吗?🤔
实践
s1 = "oeasy"
s2 = "oeasy"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2) )
s2 = "o2z"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2) )
新id
也变了
s1 = "oeasy"
s2 = "oeasy"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2) )
s1 = "ooo"
s2 = "o2z"
print(id(s1))
print(id(s2))
print(id(s1) == id(s2) )
自动垃圾回收
- 这块 存着 "oeasy"字符串 的地址、
- 没有对象 再引用
- 就垃圾回收了
- 一般还需要 手动垃圾回收
- python 直接就给 自动回收了
总结
- id函数 可以得到
- 变量对象 所引用的
唯一内存地址