0

我对id函数和它返回的整数有点困惑,这是对对象在内存中位置的引用(我认为这是正确的)。

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

4

1 回答 1

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        
于 2013-06-28T19:31:51.930 回答