Skip to main content
 首页 » 编程设计

python之python中的不可变对象(immutable对象)

2025年05月04日12itcoder

我看到一篇关于不可变对象(immutable对象)的文章。

它说什么时候:
变量 = 不可变
将不可变分配给变量。

例如
a = b # b 是不可变的
它说在这种情况下 a 指的是 b 的副本,而不是 reference to b。 如果 b 是 可变的,则 a 将是 对 b 的引用

所以:

a = 10 
b = a 
a =20 
print (b) #b still is 10 

但在这种情况下:

a = 10 
b = 10 
a is b # return True 
print id(10) 
print id(a) 
print id(b) # id(a) == id(b) == id(10) 

如果a是10的副本,b也是10的副本,为什么id(a) == id(b) == id(10)?

请您参考如下方法:

“简单”不可变文字(特别是 -1 到 255 之间的整数)是内部,这意味着即使绑定(bind)到不同的名称,它们仍然是同一个对象。

>>> a = 'foo' 
>>> b = 'foo' 
>>> a is b 
True