
a=b=100
a is b
True
a=b=500
a is b
True
a=100
b=100
a is b
True
a=500
b=500
a is b
False
前面两个,因为有a=b,所以地址一样,值也一样。最后一个,a和b是不同变量,分别分配内存空间,所以虽然值一样,地址却不一样。第三个因为Python对-5-256范围内的整数提供缓存,a和b引用的100在这个范围内,它们使用相同的地址。
本文探讨了Python中变量赋值的特性,尤其是对于整数的内存缓存。通过示例展示了当a=b时,如果值在特定范围内,a和b可能共享同一内存地址,反之则不共享,揭示了Python内存管理的一角。

a=b=100
a is b
True
a=b=500
a is b
True
a=100
b=100
a is b
True
a=500
b=500
a is b
False
前面两个,因为有a=b,所以地址一样,值也一样。最后一个,a和b是不同变量,分别分配内存空间,所以虽然值一样,地址却不一样。第三个因为Python对-5-256范围内的整数提供缓存,a和b引用的100在这个范围内,它们使用相同的地址。

被折叠的 条评论
为什么被折叠?