Warum wurde die MutableString Klasse in Python veraltet 2.6;
und warum es in Python 3 entfernt?Warum ist MutableString in Python veraltet?
Antwort
Die MutableString
Klasse gemeint war lehrreich zu sein, und nicht in Echt Programmen verwendet werden. Wenn Sie sich die Implementierung ansehen, würden Sie sehen, dass Sie dies nicht wirklich in einer ernsthaften Anwendung verwenden können, die veränderbare Zeichenfolgen benötigt.
Wenn Sie veränderbare Bytestrings benötigen, können Sie die Verwendung von bytearray
in Python 2.6 und 3.x in Betracht ziehen. Die Implementierung erstellt keine neuen Zeichenfolgen jedes Mal, wenn Sie die alte ändern, also ist es viel schneller und benutzbar. Es unterstützt auch das Pufferprotokoll ordnungsgemäß, so dass es praktisch überall anstelle eines normalen Byte-Strings verwendet werden kann.
Wenn Sie nicht wirklich werden durch den Index viele Modifikationen einer einzelnen Saite zu tun, sollten Sie eine normale Zeichenfolge modifiziert durch Erstellen eines neuen Anzug (zum Beispiel durch str.replace
, str.format
und re.sub
).
Es gibt keine wandelbaren Unicode-Strings, weil dies eine seltene Anwendung betrachtet wird, aber Sie können __unicode__
(oder __str__
für Python 3) und encode
Methoden auf Ihrem benutzerdefinierten Sequenztyp immer implementieren eine zu emulieren.
Ich vermute, weil Strings nicht als wandelbar soll. Der Hauptzweck war schließlich "lehrreich". Wenn Sie Zeichenfolgen mutieren müssen, verwenden Sie eine Liste von Zeichenfolgen oder StringIO.
"Die wichtigste Absicht dieser Klasse ist es, als Bildungsbeispiel für die Vererbung zu dienen ..." –
Geschützt, da ich gerade auf Meta in Bezug auf eine andere Diskussion mit diesem verbunden ist. Bewahren Sie es wie ursprünglich gefragt. –