如果我使用Python触发终端并且我写道:
>>> x = 100
>>> x == 100
True
>>> x is 100
True
我可以很容易地看到布尔值对==
和is
都有效
但是如果我尝试将1000
设置为变量,那么我有:
>>> x = 1000
>>> x == 1000
True
>>> x is 1000
False
有没有办法让我看到变量如何逐位存储在内存中?我不想要memory pointers,我希望看到0
和1
看看Python 正确存储。
100适合8位八位字节,而1000不适合它。
根据我的理解,==
始终会提供TRUE
因为读取值而is
正在读取内存空间,所以最终它只读取八位字节的前8位。
答案 0 :(得分:0)
尤里卡! 谢谢大家的帮助!
我现在明白,这不是关于Python如何在二进制代码中存储信息,而是关于Python如何为-5到256(含)范围内的整数存储每个分配的整数对象:
>>> x = 256
>>> y = 256
>>> id(x)
22980640
>>> id(y)
22980640
然后:
>>> x = 257
>>> y = 257
>>> id(x)
23550352
>>> id(y)
23550328