python - Python 如何知道之前创建了一个整数对象并给出相同的引用(即使值 > 256)?
问题描述
例如
a = 12345 # id(a) = 140127713009936
a = 6789 # id(a) = 140127713010448
b = 12345 # id(b) = 140127713009936
Python 怎么可能以某种方式记住之前创建的值为 12345 的整数对象并引用它而不是创建新对象?我了解它对于值 -5 到 256 的工作原理,但为什么它甚至可以工作更大的数字(也适用于字符串,尽管我不知道它是否是相同的机制)?
解决方案
在 python 中(出于优化原因),如果您有两个具有相同值的对象,那么一切都是指针,因此,python 会将每个对象的指针指向包含该值的相同位置。
见:https ://realpython.com/pointers-in-python/
python如何知道对象是否是早期创建的:python将每个对象的名称映射到该值存在的内存地址。
如果该值不存在,python 会创建一个新值。
希望你觉得它有帮助!
推荐阅读
- swift - Swift switch 语句中的空元组而不是中断?
- tensorflow - 无法将 h5 模型转换为 tflite
- agora.io - agora.io 是否可以同时托管多个流?
- javascript - 为什么 JavaScript 排序比较器参数的顺序相反?
- groovy - 我们如何使用 jira 中的 groovy 脚本创建 bitbucket 存储库?
- amp-html - amp-subscriptions 支持 NewsArticle 子类型
- r - 合并行并扩展 r 中的不同列
- bash - 最后执行系统 Bash Shell 初始化脚本
- regex - 正则表达式在 from、left join 和 inner join 子句中获取模式和表名称
- c# - 用 WIA 扫描。设置属性和抽屉 ADF