Почему класс MutableString устарел в Python 2.6,
и почему он был удален в Python 3?
Почему MutableString устарела в Python?
Ответ 1
Класс MutableString
должен был быть учебным и не использоваться в реальных программах. Если вы посмотрите на реализацию, вы увидите, что вы не можете использовать ее в серьезном приложении, требующем изменчивых строк.
Если вам нужны измененные байты, вы можете использовать bytearray
, доступный в Python 2.6 и 3.x. Реализация не создает новые строки каждый раз, когда вы меняете старый, поэтому он намного быстрее и удобнее. Он также поддерживает протокол буферов правильно, поэтому его можно использовать вместо обычной байтовой последовательности практически везде.
Если вы не собираетесь делать много модификаций одной строки по индексу, вам потребуется изменить обычную строку, создав новую, например, через str.replace
, str.format
и re.sub
).
Нет никаких изменяемых строк unicode, потому что это считается необычным приложением, но вы всегда можете реализовать методы __unicode__
(или __str__
для Python 3) и encode
для вашего пользовательского типа последовательности, чтобы эмулировать его.
Ответ 2
Я предполагаю, что строки не должны изменяться. В конце концов, основная цель была "образовательная". Если вам нужно изменить строки, используйте список строк или StringIO.