gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:45 26 4
gpt4 key购买 nike

我遇到过下面的代码。对象构造函数调用自身:

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

self.does_something()

这样实现有什么实际原因吗?我认为人们只在多重继承的上下文中使用 super 方法。

最佳答案

你提到多重继承。此类被描述为混入:也就是说,它特别打算用于多重继承的情况。它将是类层次结构中的元素之一,但不是顶部或底部。这就是它调用 super 的原因 - 方法解析顺序中的下一项实际上不是 object,而是其他一些类。

考虑这个层次结构:

class Super(object):
pass

class Sub(StatusMixin, Super)
pass

并检查 Sub.mro():

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

所以你看到这里 StatusMixin 中 super 调用的结果根本不是 object,而是 Super

关于Python:对象构造函数调用自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com