首页 > 解决方案 > 使用不同参数调用所有父类的 __init__

问题描述

我有一些这样的类结构:

class A:
    def __init__(self):
        print("A")
class B:
    def __init__(self, x):
        print("B")

class C(A,B):
    def __init__(self):
        super(C, self).__init__() # ???

c=C()

如您所见,A两者B都是C. 我想__init__C's中调用这两个类__init__。我想将一些参数传递给 B's __init__。有什么办法可以用super关键字做到这一点?我认为这会起作用:

class C(A,B):
    def __init__(self):
        A.__init__()
        B.__init__(5)

我们应该以这种方式直接调用__init__,还是有更好的解决方案?

标签: pythonpython-3.xoopmultiple-inheritance

解决方案


您必须将 self 作为参数提供给父类的 __init__()。

class C(A,B):
def __init__(self):
    A.__init__(self)
    B.__init__(self, 5)

推荐阅读