Python Id调用未实例化的对象

时间:2013-06-28 19:31:04

标签: python

我对id函数及其返回的整数感到有点困惑,这是对Object在内存中的位置的引用(我认为这是正确的)。

因此假设我们在python shell中做的第一件事是>>> id(2),我们立即得到一个整数。但是,我从未创建int对象的实例。是否正在进行实例化?

1 个答案:

答案 0 :(得分:2)

嗯,是的。编译器在生成要运行的VM的字节码时实例化它。

虽然从-1到256的整数在CPython中也是特殊的。

import dis

def foo():
  a = 2

dis.dis(foo)

...

  6           0 LOAD_CONST               1 (2)
              3 STORE_FAST               0 (a)
              6 LOAD_CONST               0 (None)
              9 RETURN_VALUE