a = 1234
b = 1234
print(id(a), id(b))
在上面的脚本中,两个ID都是相同的。 a
和b
引用同一个对象。在Python控制台中逐个运行命令时,ID是不同的:
>>> a = 1234
>>> b = 1234
>>> print(id(a), id(b))
2445680 6579168
但:
>>> print(id(1234), id(1234))
6579472 6579472
为什么1234
在连续命令中是一个不同的对象,而不是在一个命令或脚本中?
我在CPython 3.5.2上测试了这个。