繁体   English   中英

Python:对象构造函数调用自身

[英]Python: An object constructor calls itself

我遇到了以下代码。 对象构造函数调用自身:

  class StatusMixin(object):
    def __init__(self):
        super(StatusMixin, self).__init__()

        self.does_something()

有没有任何实际的理由为什么这样实施? 我认为人们只在多重继承的上下文中使用super方法。

你提到了多重继承。 这个类被描述为mixin:也就是说,它专门用于多重继承的情况。 它将是类层次结构中的元素之一,但不是顶部或底部。 这就是为什么它调用super - 方法解析顺序中的下一个项目实际上不是object ,而是其他一些类。

考虑此层次结构:

class Super(object):
    pass

class Sub(StatusMixin, Super)
    pass

并检查Sub.mro()

[__main__.Sub, __main__.StatusMixin, __main__.Super, object]

所以你看到StatusMixin超级调用的结果StatusMixin不是object ,而是Super

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM