例如
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将创建一个新值。
希望你发现这对你有帮助!
它更有可能是动态创建的,或者您可以说它是惰性评估的。