0
我对id
函数及其返回的整数有点困惑,它是对象在内存中的位置的引用(我认为这是正确的)。Python Id调用一个无关紧要的对象
因此,假设我们在python shell中做的第一件事是>>> id(2)
,我们立即得到一个整数。但是,我从来没有创建过一个对象的实例。是否有一个实例正在进行中?
我对id
函数及其返回的整数有点困惑,它是对象在内存中的位置的引用(我认为这是正确的)。Python Id调用一个无关紧要的对象
因此,假设我们在python shell中做的第一件事是>>> id(2)
,我们立即得到一个整数。但是,我从来没有创建过一个对象的实例。是否有一个实例正在进行中?
嗯,是的。编译器在生成虚拟机运行的字节码时对其进行实例化。
虽然从-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
你能解开那第一句话多一点? –
@EdgarAroutiounian为什么这会让你感到困惑?它和''foo“'没有明确地调用'str'一样创建一个字符串。 – Marcin
@Marcin不再困惑,谢谢。 –