为什么在Python中不推荐使用MutableString?

时间:2011-01-10 20:45:04

标签: python string python-3.x deprecated mutable

为什么在Python 2.6中不推荐使用MutableString类;
为什么它在Python 3中删除了?

2 个答案:

答案 0 :(得分:26)

MutableString课程本来是教育性的,不能用于真正的课程。如果你看一下实现,你会发现在一个需要可变字符串的严肃应用程序中你无法真正使用它。

如果需要可变的字节串,可以考虑使用Python 2.6和3.x中提供的bytearray。每次修改旧字符串时,实现都不会创建新字符串,因此它更快更有效。它还适当地支持缓冲协议,因此几乎可以在任何地方使用它代替普通的字节串。

如果您不打算按索引对单个字符串进行多次修改,则通过创建新字符串来修改普通字符串应该适合您(例如通过str.replacestr.format和{ {1}})。

没有可变的unicode字符串,因为这被认为是一个不常见的应用程序,但您始终可以在自定义序列上实现re.sub(或{3}}用于Python 3)和__unicode__方法键入以模拟一个。

答案 1 :(得分:5)

我猜是因为字符串不应该是可变的。毕竟,主要目的是“教育”。如果您需要改变字符串,请使用字符串列表或StringIO