首页 > 解决方案 > Python 如何知道之前创建了一个整数对象并给出相同的引用(即使值 > 256)?

问题描述

例如

a = 12345  # id(a) = 140127713009936
a = 6789  # id(a) = 140127713010448
b = 12345  # id(b) = 140127713009936

Python 怎么可能以某种方式记住之前创建的值为 12345 的整数对象并引用它而不是创建新对象?我了解它对于值 -5 到 256 的工作原理,但为什么它甚至可以工作更大的数字(也适用于字符串,尽管我不知道它是否是相同的机制)?

标签: pythonreference

解决方案


在 python 中(出于优化原因),如果您有两个具有相同值的对象,那么一切都是指针,因此,python 会将每个对象的指针指向包含该值的相同位置。

见:https ://realpython.com/pointers-in-python/

python如何知道对象是否是早期创建的:python将每个对象的名称映射到该值存在的内存地址。

如果该值不存在,python 会创建一个新值。

希望你觉得它有帮助!


推荐阅读