内置类型的问题——不可变类型不能就地改变 | 第二部分 类型与操作 —— 第 9 章: 元组,文件和其他 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-大发黄金版app下载
为了完整性再说一次:不能就地改变不可变对象。相反,使用切片,连接等操作会构建新对象,且如果需要的话将其分配给原来的引用:
t = (1, 2, 3)
t[2] = 4 # error!
t = t[:2] (4,) # ok: (1, 2, 4)
这可能看起来像额外的编程工作,但好处是当使用不可变对象如元组或字符串时,本节中前面的问题不会发生;因为它们不能就地改变,所以不会受到这里列出的这些副作用的影响。