为什么在 Python 2.6 中不推荐使用MutableString类;
为什么它在 Python 3 中被删除了?
问问题
6095 次
2 回答
26
该MutableString
课程旨在具有教育意义,而不是在实际程序中使用。如果您查看实现,您会发现您不能在需要可变字符串的严肃应用程序中真正使用它。
如果您需要可变字节串,您可以考虑使用bytearray
Python 2.6 和 3.x 中提供的。每次修改旧字符串时,该实现都不会创建新字符串,因此它更快且更实用。它还正确地支持缓冲区协议,因此它几乎可以在任何地方用来代替普通的字节串。
如果您真的不打算通过索引对单个字符串进行多次修改,那么通过创建新字符串来修改普通字符串应该适合您(例如通过str.replace
,str.format
和re.sub
)。
没有可变的 unicode 字符串,因为这被认为是一个不常见的应用程序,但您始终可以在您的自定义序列类型上实现__unicode__
(或__str__
对于 Python 3)和encode
方法来模拟一个。
于 2011-01-10T20:55:44.580 回答
5
我猜是因为字符串不应该是可变的。毕竟,主要目的是“教育”。如果您需要更改字符串,请使用字符串列表或StringIO。
于 2011-01-10T20:53:03.087 回答