¿Por qué la clase MutableString quedó obsoleta en Python 2.6;
y por qué fue eliminado en Python 3?¿Por qué MutableString está en desuso en Python?
Respuesta
La clase MutableString
estaba destinada a ser educativa, y no para ser utilizada en programas reales. Si nos fijamos en la implementación, verá que realmente no puede usar esto en una aplicación seria que requiera cadenas mutables.
Si necesita cadenas de bytes mutables, puede considerar usar bytearray
que está disponible en Python 2.6 y 3.x. La implementación no crea nuevas cadenas cada vez que modificas la anterior, por lo que es mucho más rápida y utilizable. También es compatible con el protocolo de búfer de manera adecuada, por lo que se puede utilizar en lugar de una cadena de bytes normal prácticamente en todas partes.
Si usted no está realmente va a hacer muchas modificaciones de una sola cadena mediante un índice, la modificación de una cadena normal, mediante la creación de uno nuevo en caso de que sea adecuado (por ejemplo a través str.replace
, str.format
y re.sub
).
No hay cadenas Unicode mutables, puesto que se considera una aplicación poco común, pero siempre se puede poner en práctica __unicode__
(o __str__
para Python 3) y encode
métodos en su encargo tipo de secuencia para emular una.
Supongo que se supone que las cadenas no se pueden modificar. El propósito principal era "educativo", después de todo. Si necesita mutar cadenas, use una lista de cadenas o StringIO.
- 1. ¿Por qué (javax.servlet.) SingleThreadModel está en desuso?
- 2. ¿Por qué auto_ptr está en desuso?
- 3. ¿por qué absolutelayout está en desuso?
- 4. Por qué saveOrUpdateAll está en desuso en la primavera HibernateOperations
- 5. ¿Por qué Files.deleteDirectoryContents() está en desuso en Guava?
- 6. ¿MFC está en desuso?
- 7. ¿Por qué el módulo Rails Inflector está en desuso?
- 8. css: ¿por qué ** color: red ** está en desuso?
- 9. ¿Por qué ActiveRecord :: Base # update_attributes está en desuso?
- 10. java.util.Timer: ¿está en desuso?
- 11. getch está en desuso
- 12. ¿Hibernate está en desuso?
- 13. ¿IsampleGrabber está en desuso?
- 14. SMSManager está en desuso
- 15. ActivityGroup está en desuso
- 16. $ HADOOP_HOME está en desuso
- 17. 'sharedDispatcher' está en desuso
- 18. AuthorizationExecuteWithPrivileges está en desuso
- 19. dismissmodalviewcontrolleranimated está en desuso primero en desuso en ios 6
- 20. ¿Qué significa "en desuso"?
- 21. Arguments.callee está en desuso - ¿qué debería usarse en su lugar?
- 22. iPhone stringWithCString está en desuso
- 23. -setStatusBarHidden: animated: está en desuso
- 24. devise.registrations.reasons en archivos yml está en desuso?
- 25. isOrientationSupported está en desuso en IOS
- 26. kCGColorSpaceGenericRGB está en desuso en iPhone?
- 27. jquery's live() está en desuso. ¿Qué uso ahora?
- 28. ¿Por qué Perl se queja de que "el uso de división implícita en @_ está en desuso"?
- 29. Scala: ¿por qué remove está en desuso en favor de filterNot?
- 30. ¿Por qué getText() en JPasswordField estaba en desuso?
"La intención principal de esta clase es servir como un ejemplo educativo para la herencia ..." –
Protegido desde que acabo de vincular a esto en Meta en lo que respecta a otra discusión. Preservarlo como se le pidió originalmente. –