У меня есть следующие классы:
class c0(object):
def post_pred(self, ins):
print("this is post_pred in c0")
class c1(c0):
def __init__(self):
print("this is class c1")
def predict(self, ins):
print("this is predict in c1")
selfz.post_pred(0)
def post_pred(self,ins):
print("this is post_pred in c1")
class c2(c1):
def __init__(self):
super().__init__()
print("this is class c2")
def predict(self, ins):
super().predict(0)
print("this is predict in c2")
self.post_pred(0)
def post_pred(self, ins):
print("this is post_pred in c2")
if __name__ == '__main__':
sss = c2()
sss.predict(2)
После запуска этого сценария я хочу увидеть следующее:
this is class c1
this is class c2
this is predict in c1
this is post_pred in c1
this is predict in c2
this is post_pred in c2
Но вместо этого я вижу:
this is class c1
this is class c2
this is predict in c1
this is post_pred in c2
this is predict in c2
this is post_pred in c2
Кажется, что наследование не распространяется на функцию post_pred
.Мне просто интересно, как правильно достичь своей цели.