继承在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