继承在python-cod中不起作用

2024-04-25 14:00:01 发布

您现在位置:Python中文网/ 问答频道 /正文

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)

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

第四(4):
一个4
两个4
<4/>
为什么继承不起作用,我如何修复它。
谢谢你的帮助。


Tags: selfobjectinitdefoneclassfirstprint
1条回答
网友
1楼 · 发布于 2024-04-25 14:00:01

您需要调用基类OneFirst中的super().__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

相关问题 更多 >