Perché la classe MutableString è stata deprecata in Python 2.6;
e perché è stato rimosso in Python 3?Perché la funzione MutableString è deprecata in Python?
risposta
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.
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.
- 1. Perché la funzione fgets è deprecata?
- 2. Perché la TSD è deprecata?
- 3. Perché la costante HTTP.UTF_8 è deprecata?
- 4. La funzione in PHP è deprecata, cosa dovrei usare ora?
- 5. perché la API del dominio è deprecata in Node.js?
- 6. La funzione mysql_escape_string() è deprecata uso mysql_real_escape_string() Codeigniter
- 7. di ricambio per la funzione deprecata mysql_connect
- 8. Alternativa per la funzione PHP deprecata: eregi_replace
- 9. La classe 'org.springframework.boot.autoconfigure.web.HttpMapperProperties' è contrassegnata come deprecata?
- 10. Javascript: la matrice degli argomenti è deprecata?
- 11. In python, la funzione è un oggetto?
- 12. La descrizione di Api annotaion è deprecata
- 13. Posso contrassegnare una funzione come deprecata?
- 14. Funzione ereg_replace() è deprecata - Come eliminare questo bug?
- 15. Symfony: l'opzione cascade_validation è deprecata
- 16. Mac OS Pygame che utilizza una funzione deprecata CGSFlushWindow
- 17. Perché Python divide la funzione di lettura in più syscalls?
- 18. In VB.NET, posso contrassegnare una funzione come deprecata?
- 19. Perché la funzione curry è chiamata curry?
- 20. Android, la versione standalone di traceview è deprecata
- 21. Perché è necessaria la funzione MatLab "feval"?
- 22. Perché la funzione hypot() è così lenta?
- 23. La conversione da stringa letterale a char * è deprecata
- 24. Hash per la funzione lambda in Python
- 25. Perché la multiprocessing di Python è in esecuzione in sequenza?
- 26. Come funziona la funzione "tutto" in Python?
- 27. Perché non è possibile passare la funzione di stampa a dir() in python?
- 28. È possibile modificare la replica di una funzione in python?
- 29. Come determinare se la variabile è una funzione in Python?
- 30. Perché tuple non è mutabile in Python?
"L'intenzione principale di questa classe è di fornire un esempio educativo per l'ereditarietà ..." –
Protetto da quando mi sono collegato a questo su Meta per un'altra discussione. Conservandolo come originariamente richiesto. –