可能的重复:
为什么 python 字符串和元组是不可变的? https://stackoverflow.com/questions/1538663/why-are-python-strings-and-tuples-are-made-immutable
什么底层设计使得 Python 中的元组不可变?为什么这个功能很有用?
有几个原因:
- 像列表这样的可变对象不能用作 Python 中的字典键或集合成员,因为它们不是hashable http://docs.python.org/glossary.html#term-hashable。如果给出列表
__hash__
方法基于其内容,返回的值可能会随着内容的变化而变化,这违反了哈希值的约定。
- 如果 Python 仅具有可变序列,则接受序列的构造函数通常需要复制它们以确保序列不会被其他代码修改。构造函数可以通过仅接受元组来避免防御性复制。更好的是,他们可以通过
tuple
仅在必要时才会复制的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)