Почему MutableString устарела в Python? - PullRequest
19 голосов
/ 10 января 2011

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

Ответы [ 2 ]

26 голосов
/ 10 января 2011

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

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

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

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

5 голосов
/ 10 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...