Как распространить наследование классов на другие функции - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть следующие классы:

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.Мне просто интересно, как правильно достичь своей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...