2011-01-10 53 views

回答

26

MutableString类是为了教育,而不是在真正的程序中使用。如果你看看实现,你会发现你不能真正在需要可变字符串的严重应用程序中使用它。

如果你需要可变的字节串,你可以考虑使用Python 2.6和3.x中提供的bytearray。该实现不会在您每次修改旧字符串时创建新字符串,因此它更快且更实用。它也正确地支持缓冲区协议,所以它可以在几乎任何地方用来代替普通的字节串。

如果你不是真的要通过索引做一个字符串的许多修改,通过创建一个新的应该适合你(例如,通过str.replacestr.formatre.sub)修改正常的字符串。

没有可变的Unicode字符串,因为这被认为是一种不常见的应用程序,但你总是可以实现(对于Python 3或__str__)和自定义序列类型encode方法__unicode__效仿之一。

5

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

相关问题