python - 如何排除父类的__init__但包括父类的父类的__init__?

标签 python class inheritance multiple-inheritance

Third 类是否可以继承First 类,以及Second 类的方法,除了 >__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__ 方法,因此您所要做的就是使用您要使用的 __init__ 的显式类名而不是调用 super

# Inside Third.__init__
First.__init__(self)

关于python - 如何排除父类的__init__但包括父类的父类的__init__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68817688/

相关文章:

c# - 通过 C# 和 cPython 之间的管道交换数据

c++ - 递归函数中的类变量访问

Angular 组件继承和继承订阅

c++ - 为什么我必须通过this指针访问模板基类成员?

java - 在 Hibernate 中映射多级继承

python - 如何将模拟对象传递给自定义 simple_tag 的单元测试?

python - PyQt5:如何在子线程中运行QTimer并将值返回到主Widget?

python - 使用pyinstaller打包可执行python时如何添加相对目录?

C++类链接错误

python - 为什么我的嵌套 python 类实例变成了元组?