“的含义;“混合方法”;在Python文档中
有一个很好的汇总表(下图),其中有一列名为“Mixin Methods”。我被这一列和上一列之间的差异弄糊涂了 是不是“抽象方法”可以定制,但“mixin方法”有一个特定的实现,在给定类型的所有类中都是固定的?如果是,我在哪里可以找到这些mixin方法中的内容“的含义;“混合方法”;在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
非常感谢 一个抽象的方法应该是您自己实现的,如果您从这些类中的任何一个继承的话。例如:
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