agg*_*199 1 python object mutable immutability
我知道在 python 中,从 -5 到 256 的整数可以具有相同的 ID。但是,如果两个不可变对象具有相同的 ID,会有什么后果呢?当两个可变对象具有相同的 ID 时,后果如何?
谢谢你。
Anid在给定的时间点是定义唯一的(一次只有一个对象可以拥有一个给定的对象id)。如果您同时id在两个名称上看到相同的内容,则表示这两个名称指的是同一个对象。对于像这样的不可变类型没有“后果” int,因为不可能通过任何一个别名修改对象(x = y = 5别名x和y同一个5对象,但x += 1大致相当于x = x + 1不可变对象,重新绑定x到新对象6,不修改的5代替对象); 这就是为什么像int您观察到的小缓存这样的优化是安全的。