如何排除父 class 的 __init__ 但包含父 class 的父 __init__?
How to exclude __init__ of parent class but include __init__ of parent of parent class?
有没有办法让Third
class继承First
class以及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
中的方法。
有没有办法让Third
class继承First
class以及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
中的方法。