Python 的文档有一个表,其中包含“大多数序列类型支持”的“通用序列操作”。它列出了例如x in s
、s[i]
和len(s)
、 序列可以通过方法 和 支持__contains__
的__getitem__
内容__len__
。但它也列出了min(s)
and max(s)
,我不明白为什么。这两个适用于任何可迭代的,我看不出它们与序列有关的任何特别之处。没有__min__
和__max__
或任何其他方式可以真正支持他们,是吗?如果有的话,我希望立即max(range(10**8))
给我结果,而不是几秒钟。就像那样。如果和10**20 in range(10**30)
min
max
只是为了展示内置函数,我更希望reversed
被列出,因为这确实与序列有关(它适用于每个序列,但不适用于每个可迭代)。
所以我忽略了什么?或者在以前的 Python 版本中确实__min__
和__max__
或以其他方式真正支持min
和max
存在,并且表没有更新?还是有其他充分的理由在那里列出它们?我很困惑。
该部分的第一段甚至说:
提供
collections.abc.Sequence
ABC 是为了更容易在自定义序列类型上正确实现这些操作。
这听起来像是人们期望编写自定义序列类型以某种方式实现它们。除非有实际的方法来实现它们,否则这对我来说毫无意义。