为什么在Python 2.6中不推荐使用MutableString类;
为什么它在Python 3中被删除?为什么在Python中不推荐使用MutableString?
19
A
回答
26
该MutableString
类是为了教育,而不是在真正的程序中使用。如果你看看实现,你会发现你不能真正在需要可变字符串的严重应用程序中使用它。
如果你需要可变的字节串,你可以考虑使用Python 2.6和3.x中提供的bytearray
。该实现不会在您每次修改旧字符串时创建新字符串,因此它更快且更实用。它也正确地支持缓冲区协议,所以它可以在几乎任何地方用来代替普通的字节串。
如果你不是真的要通过索引做一个字符串的许多修改,通过创建一个新的应该适合你(例如,通过str.replace
,str.format
和re.sub
)修改正常的字符串。
没有可变的Unicode字符串,因为这被认为是一种不常见的应用程序,但你总是可以实现(对于Python 3或__str__
)和自定义序列类型encode
方法__unicode__
效仿之一。
5
我猜,因为字符串不应该是可变的。毕竟,主要目的是“教育”。如果您需要变更字符串,请使用字符串列表或StringIO。
相关问题
- 1. 为什么Logger.isInfoEnabled不推荐使用org.jboss.logging.Logger?
- 2. 为什么不推荐使用isJavaLetterOrDigit?
- 3. 为什么不推荐使用JButton.enable?
- 4. 为什么不推荐使用struts2 FilterDispatcher?
- 5. 为什么SET不推荐使用?
- 6. 为什么不推荐使用StringTokenizer?
- 7. std :: iterator为什么不推荐使用?
- 8. Object.observe()为什么不推荐使用
- 9. 为什么不推荐使用std :: strstream?
- 10. 为什么不推荐使用body.scrollTop?
- 11. 为什么不推荐HibernateTemplate?
- 12. 为什么不推荐使用window.showModalDialog?代替使用什么?
- 13. 为什么不推荐使用assert_template,而应该使用什么?
- 14. 为什么在Rails中不推荐使用auto_link?
- 15. 为什么在PHP中不推荐使用`ereg`?
- 16. 为什么在JAVA中不推荐使用默认包?
- 17. 为什么在Django 1.5+中不推荐使用markdown?
- 18. 为什么不推荐在SQL中使用“LIKE”?
- 19. 为什么在Rails 3中不推荐使用验证?
- 20. 为什么在Guava中不推荐使用Files.deleteDirectoryContents()?
- 21. 为什么在Angular中不推荐使用“导出默认”?
- 22. 为什么在glibc中不推荐使用'sys_errlist'?
- 23. 为什么在Akka 2.0.2中不推荐使用akka.jsr166y.ForkJoinPool?
- 24. jQuery切换不推荐使用什么?
- 25. 为什么Spring Boot 1.5.3中不推荐使用GuavaCacheConfiguration?
- 26. Spring安全中的接口WebSecurityExpressionHandler为什么不推荐使用?
- 27. 如何找出iOS中为什么不推荐使用函数?
- 28. 为什么不推荐使用包org.apache.hadoop.mapred中的大多数类?
- 29. 为什么saveOrUpdateAll在春季不推荐使用HibernateOperations
- 30. 为什么gunicorn_django不再被推荐?
“这个班级的主要目的是作为继承的教育范例......” – 2011-01-10 20:51:00