我读过Python元组在创建之后无法修改。例如,元组对象不允许项目分配。但是,如果我在元组中有列表对象,那么我可以附加到该列表。那么,Python不应该禁止这样做,因为我们基本上都在修改一个元组吗?
答案 0 :(得分:2)
来自python' s documentation:
包含对可变对象的引用的不可变容器对象的值可以在后者的值更改时更改;但是容器仍然被认为是不可变的,因为它包含的对象集合无法更改。因此,不变性与具有不可改变的价值并不完全相同,而是更微妙。
在某些方面,它意味着元组内的对象仍具有相同的标识或id
:
>>> t
([0],)
>>> id(t[0])
140282665826440
>>> t[0].append(1)
>>> t
([0, 1],)
>>> id(t[0])
140282665826440 # same as in above
答案 1 :(得分:1)
元组的不变性很浅:你不能改变元组所指的对象。但如果这些对象本身是可变的,你可以改变它们。