本帖最后由 春暖亦寒 于 2021-5-24 15:52 编辑
[Python] 纯文本查看 复制代码 a = 255
b = 255
# 进行了整数缓存
print(id(a),id(b)) # 1899768080752 1899768080752
# 没有进行整数缓存
a = 257
b = 257
print(id(a),id(b)) # 1899841094288 1899841094448
以上在命令行中执行的话,输出的结果在预期之中,但是试了一下链式赋值,结果有点看不懂了
[Python] 纯文本查看 复制代码 # 系列解包赋值
a ,b= 257,257
print(id(a),id(b)) # 1899841094448 1899841094448
后来又试了一下这样:
[Python] 纯文本查看 复制代码 d = (257,257,257,257,257,257,257)
l = [257,257,257,257,257,257,257]
print([id(d[i]) for i in range(len(d))])
print([id(l[i]) for i in range(len(l))])
# [2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328]
# [2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328, 2616819825328]
这是为什么啊?哪位大佬知道,求讲解 |