如何排除父 class 的 __init__ 但包含父 class 的父 __init__?

How to exclude __init__ of parent class but include __init__ of parent of parent class?

有没有办法让Thirdclass继承Firstclass以及Second[=27=的方法] 除了第二个 class?

__init__ 方法
class First(object):
    def __init__(self):
        super().__init__()
        print("first")

    def f1(self):
        print("f1")


class Second(First):
    def __init__(self):
        super().__init__()
        print("second")

    def f2(self):
        print("f2")


class Third(Second):
    def __init__(self):
        super().__init__()
        print("third")
        self.f1()
        self.f2()
        self.f3()

    def f3(self):
        print("f3")


Third()

当前输出

first
second
third
f1
f2
f3

期待输出

first
third
f1
f2
f3

Third 已经覆盖了 __init__ 方法,因此您所要做的就是使用显式 class 名称,而不是调用 __init__ super.

# Inside Third.__init__
First.__init__(self)

类 可以从多个父代继承,而不仅仅是通过嵌套 - 请参阅此处的 MultiDevrived 示例:https://www.programiz.com/python-programming/multiple-inheritance.

您可以使用 Third(First, Second) 进行声明,以便在命名冲突的情况下使用 First 中的方法,然后使用 Second 中的方法。