错误:TypeError:__init __()接受1个位置参数,但给出了2个

时间:2019-07-13 10:02:00

标签: python init super

我绝对是Python初学者,不了解以下几行的问题。

class Base:
    def __init__(self, x):
        print("Base")
        self.x = x

class A(Base):
    def __init__(self):
        super(A, self).__init__(1)
        print("A")
class B(Base):
    def __init__(self):
        super(B, self).__init__(2)
        print("B")

class C(A, B):
    def __init__(self):
        super(C, self).__init__()
        print("C")

if __name__ == '__main__':
    c = C()

我认为超级调用按以下顺序从C init查找:A-B-Base-Base还是我错了?

谢谢您的回答。

1 个答案:

答案 0 :(得分:0)

使用以下代码:

class A(Base):
    def __init__(self):
        super(A, self).__init__() #Remove this 1
        print("A")

希望对您有帮助。