2011-01-10 8 views
19

Perché la classe MutableString è stata deprecata in Python 2.6;
e perché è stato rimosso in Python 3?Perché la funzione MutableString è deprecata in Python?

+0

"L'intenzione principale di questa classe è di fornire un esempio educativo per l'ereditarietà ..." –

+0

Protetto da quando mi sono collegato a questo su Meta per un'altra discussione. Conservandolo come originariamente richiesto. –

risposta

26

La classe MutableString era pensata per essere educativa e non per essere utilizzata nei programmi reali. Se guardi all'implementazione, vedresti che non puoi davvero usarlo in un'applicazione seria che richiede stringhe mutabili.

Se sono necessari dei bipotimenti, è possibile utilizzare bytearray disponibile in Python 2.6 e 3.x. L'implementazione non crea nuove stringhe ogni volta che modifichi quella vecchia, quindi è molto più veloce e utilizzabile. Supporta anche il protocollo buffer correttamente in modo che possa essere utilizzato al posto di un normale test praticamente ovunque.

Se non siete veramente intenzione di fare molte modifiche di una singola stringa per indice, modificando una stringa normale con la creazione di uno nuovo dovrebbe fa per voi (ad esempio attraverso str.replace, str.format e re.sub).

ci sono stringhe Unicode mutevoli, perché questo è considerato un programma raro, ma si può sempre implementare __unicode__ (o __str__ per Python 3) e encode metodi sul vostro tipo di sequenza personalizzata di emulare uno.

5

Suppongo che le stringhe non dovrebbero essere modificabili. Lo scopo principale era "educativo", dopotutto. Se è necessario modificare le stringhe, utilizzare un elenco di stringhe o StringIO.

Problemi correlati