我不明白为什么在 python 中我写下:
from collections.abc import *
print(map.__mro__)
print(issubclass(map,Iterator))
我得到的输出是:
(<class 'map'>, <class 'object'>)
True
但是迭代器类没有显示在 map.___ mro ___ 的返回中,为什么会这样?这与mro 的工作原理有关吗?
我期望当我编写 print(map.___ mro ___)时“class Iterator”会出现在控制台中
这是因为
collections.abc.Iterator
实现了一种__subclasshook__
方法,只要给定的类定义了和方法,它就会将给定的类视为其子类:__iter__
__next__