我是一名Python程序员,我对Python中的对象实习有一些疑问:
a= 10
b= 10
print(a is b) #evaluates to true
但是,
a= '123098'
b= '123098'
print(a is b) #should print False
在我的机器中...我已经安装了python 3.12,问题是我了解到python确实从-5到256进行对象实习...就像我将257分配给它们的内存地址不应该相同但我的解释器打印是否正确....有任何信息吗?谢谢!
以下是 Python 中对象驻留的细分以及它如何应用于您的观察:
整数实习:
字符串实习:
您的观察:
a = 10; b = 10; print(a is b)
计算结果为 True:
a
和 b
都指同一个实习对象。a = '123098'; b = '123098'; print(a is b)
计算结果为 False:
a = 257; b = 257; print(a is b)
计算结果为 True:
a
和 b
提供相同的内存地址。要点:
==
检查值是否相等,而不是使用 is
检查对象身份。sys.intern()
函数手动驻留字符串。