为什么python字符串和元组是不可变的?


问题内容

我不确定为什么字符串和元组是不可变的。使它们不变的优点和缺点是什么?


问题答案:

一个就是性能:知道字符串是不可变的,因此很容易在构造时进行布局-
固定且不变的存储要求。这也是区分元组和列表的原因之一。这也允许实现安全地重用字符串对象。例如,CPython实现将预分配的对象用于单字符字符串,并且通常返回原始字符串用于不更改内容的字符串操作。

另一个是Python中的字符串被视为数字的“元素”。活动量不会将值8更改为其他任何值,在Python中,活动量也不会将字符串“八”更改为其他任何值。

http://effbot.org/pyfaq/why-are-python-strings-
immutable.htm