Python 为什么要循环通过mro并检查dict in子类HOOK?
下面是如何从以下位置使用Python 为什么要循环通过mro并检查dict in子类HOOK?,python,Python,下面是如何从以下位置使用\uuuuu子类hook\uuuuu的示例: 有人已经问过了,但还有一件事我不明白。为什么要去明确地查看\uuuuu mro\uuuuuu中的每个\uuuuu dict\uuuuuu?如果hasattr(C,,,,,iter?我用一个玩具示例尝试了后者,结果正如我所预期的那样,但我想知道是否有细微的差别,或者文档中的样式是否是因为“历史原因”而如此。C.\uuuuuiter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuu子类hook\uuuuu
的示例:
有人已经问过了,但还有一件事我不明白。为什么要去明确地查看
\uuuuu mro\uuuuuu
中的每个\uuuuu dict\uuuuuu
?如果hasattr(C,,,,,iter?我用一个玩具示例尝试了后者,结果正如我所预期的那样,但我想知道是否有细微的差别,或者文档中的样式是否是因为“历史原因”而如此。C.\uuuuuiter\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,您可以将其作为一个发布。我认为,当在内部查找magic方法时,它们不可能使用重写的\uuu getattribute\uuuu
方法,无论哪种方式,我都希望,如果它在文档中是这样的,那么它可能非常接近于它在内部的实现方式(文档是由实现python的同一个人编写的)这对需要自己实施的人很有帮助。
@classmethod
def __subclasshook__(cls, C):
if cls is MyIterable:
if any("__iter__" in B.__dict__ for B in C.__mro__):
return True
return NotImplemented