Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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文档中_Python_Python 3.x_Abstract Class - Fatal编程技术网

“的含义;“混合方法”;在Python文档中

“的含义;“混合方法”;在Python文档中,python,python-3.x,abstract-class,Python,Python 3.x,Abstract Class,有一个很好的汇总表(下图),其中有一列名为“Mixin Methods”。我被这一列和上一列之间的差异弄糊涂了 是不是“抽象方法”可以定制,但“mixin方法”有一个特定的实现,在给定类型的所有类中都是固定的?如果是,我在哪里可以找到这些mixin方法中的内容 非常感谢 一个抽象的方法应该是您自己实现的,如果您从这些类中的任何一个继承的话。例如: class MyIter(collections.abc.Iterator): # We must override __next__ b

有一个很好的汇总表(下图),其中有一列名为“Mixin Methods”。我被这一列和上一列之间的差异弄糊涂了

是不是“抽象方法”可以定制,但“mixin方法”有一个特定的实现,在给定类型的所有类中都是固定的?如果是,我在哪里可以找到这些mixin方法中的内容


非常感谢

一个抽象的方法应该是您自己实现的,如果您从这些类中的任何一个继承的话。例如:

class MyIter(collections.abc.Iterator):

    # We must override __next__ because it's abstract in `Iterator`.
    def __next__(self):
        ...
mixin是一种方法,其实现已经在超类中提供。因此,您不需要重写
\uuuuu iter\uuuu
,因为
迭代器已经实现了它

继续使用
迭代器
示例:实现了
迭代器
类本身(稍微简化):

我们用它来表示
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
是抽象的;如果您忘记在具体的实现类中重写它,则装饰程序将


另一方面,
\uuuu iter\uuu
方法有一个简单返回
self
的实现,正如。

在这里阅读关于python中混合的内容:。谢谢,这是一个很好的答案!
class Iterator(Iterable):

    @abc.abstractmethod
    def __next__(self):
        pass

    def __iter__(self):
        return self