【发布时间】:2014-10-27 14:32:02
【问题描述】:
以zip 为例。
我只想知道是Iterable 还是Iterator 还是Generator。
所以我把这个:
zip(x,y).__class__
它打印:zip
为什么类名是小写的?
import inspect
inspect.getmro(zip)
zip.__base__
打印:(zip, object)
这不可能。 Python 文档说zip 返回一个iterator(或generator?),但zip 显然不是从Iterator 或类似getmro 打印出来的。
所以这两个问题,谢谢帮助。
【问题讨论】:
-
它们是 ABC,它们不会出现在内置对象的 MRO 中...
-
任何东西都可以是迭代器。它不必从任何特定的基类型继承;它只需要提供正确的方法。
-
Python 不太强调对象是什么类型,而是关心对象可以做什么。
标签: python oop iterator generator