当我遇到以下代码的奇怪行为时,我正在使用交互式shell中的'is'运算符:
首先按预期进行:
>>> x = 11
>>> y = 11
>>> x is y
True
但是当我尝试这个时:
>>> x = 987456
>>> y = 987456
>>> x is y
False
在使用id()函数进一步尝试之后,我注意到同一对象上的整数> 256点,而其他对象则没有。我还注意到这种行为只发生在python交互式shell中。这种行为有什么用?
答案 0 :(得分:-1)
is
检查内存地址。围绕C
类型的包装器的不可变对象往往具有相同的内存地址,而其他对象则没有。这里的区别是存储整数所需的字节数。