继承在python代码中不起作用

继承在python代码中不起作用,python,python-3.x,class,multiple-inheritance,Python,Python 3.x,Class,Multiple Inheritance,输出: 第三(3): 前3个 第二个3 第三个3 第四(4): 一个4 两个4 第四个4 为什么继承不起作用,我如何修复它。 感谢您的帮助。您需要在基类One和First中调用super()。\uuu init\uu(),以允许相邻类初始化 class One(object): def __init__(self, i = 0): print('one', i) class Two(One): def __init__(self, i = 0):

输出:
第三(3):
前3个
第二个3
第三个3

第四(4):
一个4
两个4
第四个4

为什么继承不起作用,我如何修复它。

感谢您的帮助。

您需要在基类
One
First
中调用
super()。\uuu init\uu()
,以允许相邻类初始化

class One(object):
    def __init__(self, i = 0):
        print('one', i)

class Two(One):
    def __init__(self, i = 0):
        super().__init__(i)
        print('two', i)

class First(object):
    def __init__(self, i = 0):
        print('first', i)

class Second(First):
    def __init__(self, i = 0):
        super().__init__(i)
        print('second', i)

class Third(Second, Two):
    def __init__(self, i = 0):
        super().__init__(i)
        print('third', i)

class Fourth(Two, Second):
    def __init__(self, i = 0):
        super().__init__(i)
        print('fourth', i)

请描述你的实际问题。我向您保证继承是有效的。您的代码的格式非常糟糕,使用

不是格式化它的方法。只需将其缩进四个空格。请修复代码格式!post editor中内置了一些工具来实现这一点。正如Carcigenicate所建议的,请描述您期望的行为,即您认为的“继承不起作用”是什么意思。它确实有效,问题是你期望的是不同的东西,但你没有描述什么。你的等式仍然没有正确描述你期望的输出。第四个(4)的输出不好,第一个和第二个仍然显示0,为什么?如果我在基类中传递参数,我会收到错误:TypeError:object.\uuu init\uuuu()不接受任何参数如果不了解您的实际用例,我绝对无法帮助您。我建议您尝试将当前类的名称作为
I
值传递,以查看init调用线索链,但我不确定您计划如何在实际代码中使用类似的设置。可能在
class One(object):
    def __init__(self, i = 0):
        super().__init__()
        print('one', i)

....

class First(object):
    def __init__(self, i = 0):
        super().__init__()
        print('first', i)
....

>>> Fourth()
first 0
second 0
one 0
two 0
fourth 0