Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么要循环通过mro并检查dict in子类HOOK?_Python - Fatal编程技术网

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