【发布时间】:2013-04-18 09:40:23
【问题描述】:
我对以下结果感到惊讶,使用Python 2.7.4:
>>> id(5)
5068376
>>> id(5)
5068376
当计算表达式 5 时,会创建一个标识为 5068376 的新对象。现在,我希望重复相同的语句会创建 另一个 新对象,其标识将是唯一的,因为简单地计算表达式不会产生对对象的任何引用,并且该对象应该被垃圾回收。
也不是解释器重用了同一个内存地址:
>>> id(6)
5068364
>>> id(5)
5068376
那是什么?解释器是否对文字进行幕后绑定?
【问题讨论】:
-
@AshwiniChaudhary:您可能想总结一下并作为答案发布,因为这回答了问题。
-
@Guvante:他为什么要这么做?投票结束重复是正确的做法。无需在此处重新表述另一个问题的现有答案。
-
@Wooble:因为虽然答案相同,但我无法判断问题是否相同。我不认识
id和is,所以不想声称重复。
标签: python literals name-binding