Подтвердить что ты не робот

Почему MutableString устарела в Python?

Почему класс MutableString устарел в Python 2.6,
и почему он был удален в Python 3?

4b9b3361

Ответ 1

Класс MutableString должен был быть учебным и не использоваться в реальных программах. Если вы посмотрите на реализацию, вы увидите, что вы не можете использовать ее в серьезном приложении, требующем изменчивых строк.

Если вам нужны измененные байты, вы можете использовать bytearray, доступный в Python 2.6 и 3.x. Реализация не создает новые строки каждый раз, когда вы меняете старый, поэтому он намного быстрее и удобнее. Он также поддерживает протокол буферов правильно, поэтому его можно использовать вместо обычной байтовой последовательности практически везде.

Если вы не собираетесь делать много модификаций одной строки по индексу, вам потребуется изменить обычную строку, создав новую, например, через str.replace, str.format и re.sub).

Нет никаких изменяемых строк unicode, потому что это считается необычным приложением, но вы всегда можете реализовать методы __unicode__ (или __str__ для Python 3) и encode для вашего пользовательского типа последовательности, чтобы эмулировать его.

Ответ 2

Я предполагаю, что строки не должны изменяться. В конце концов, основная цель была "образовательная". Если вам нужно изменить строки, используйте список строк или StringIO.