我现在正在学习Python 3.3,我想知道一些用于管理集合/可迭代对象的函数(例如sorted()
,reversed()
)为什么是内置的,而有些则作为集合对象的方法实现?我可以使用方法append()
将项目添加到列表中,但要获取其长度,则应使用内置函数len()
。对我来说,这似乎不一致,但我认为我可能错过了新语言中的某些要点。
我现在正在学习Python 3.3,我想知道一些用于管理集合/可迭代对象的函数(例如sorted()
,reversed()
)为什么是内置的,而有些则作为集合对象的方法实现?我可以使用方法append()
将项目添加到列表中,但要获取其长度,则应使用内置函数len()
。对我来说,这似乎不一致,但我认为我可能错过了新语言中的某些要点。
sorted()
和reversed()
的最后一段是一个好观点,但为什么他们不使用像mixins或者抽象方法这样的东西呢? - artvolkreverse()
和__reversed __()
实际上是MutableSequence
和Sequence
的mixin方法。sorted
仍然没有定制的点。也许因为如果设置了key
参数,容器基本上无法对该过程做出贡献。 - Steve Jessop
sorted
接受任何可迭代对象作为其第一个参数。与列表方法sort
相对应。 - cdarke