gpt4 book ai didi

Python整数缓存

转载 作者:太空狗 更新时间:2023-10-30 01:20:36 24 4
gpt4 key购买 nike

在下面的 python 脚本中,为什么第二个断言会通过(即当将 0 加到 257 并将结果存储在 y 中时,x 和 y 变成不同的对象)?谢谢!

x = 257
y = 257
assert x is y

x = 257
y = 257 + 0
assert x is not y

最佳答案

整数是不可变的,因此任何更改它们的操作都会导致新的内存位置

>>> a =9876
>>> id(a)
38478552
>>> a+=1
>>> id(a)
38478576
>>> a+=0
>>> id(a)
38478528

is 正在检查对象的实际内存位置......并且基本上不应该用于检查值是否相等(尽管它可能会在一些小的情况下任意工作)

关于Python整数缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38212252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com