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)minmax只是为了展示内置函数,我宁愿希望reversed被列出,因为这确实与序列有关(它适用于每个序列,但不适用于每个可迭代对象)。
所以我忽略了什么吗?还是没__min__和__max__或其他方式来真正支持min,并max在以前的Python版本的存在,并没有更新的表?或者是否有其他充分的理由将它们列在那里?我糊涂了。
该部分的第一段甚至说:
在
collections.abc.Sequence美国广播公司提供,使其更容易正确地执行自定义序列类型这些操作。
这听起来像人们期望编写自定义序列类型的人以某种方式实现它们。除非有实际的方法来实现它们,否则这对我来说毫无意义。