Maison > Article > développement back-end > Une brève analyse des problèmes d'héritage Python
Cet article présente principalement des informations pertinentes sur l'analyse approfondie des problèmes d'héritage python. C'est très bien. Les amis intéressés devraient y jeter un œil.
Le code suivant est disponible :
.class p1: def __init__(self,a,b): print("init in p1") self.a1=a self.b1=b self.f1() def f1(self): print("f1 in p1") class c1(p1): def __init__(self,a,b,c=2): print("init in c1") p1.__init__(self,a,b) self.c1=c self.f1() def f1(self): print("f1 in p2") class c2(c1): pass c=c2(11,22) print(c.a1) print(c.b1) print(c.c1)
Ensuite, le résultat d'exécution du code est le suivant :
F:\python_code\test>python class_init.py init in c1 init in p1 f1 in p2 f1 in p2 11 22 2
Concernant le processus d'exécution du code, j'ai la question suivante. J'appellerai p1.__init__() dans la fonction __init__ de c1, puis j'exécuterai la fonction c1.f1() à chaque fois. p1.f1(). Le f1() exécuté dans p1 ), c'est aussi c1.f1(). Pourquoi?
Analyse des causes :
p1.__init__(self,a,b)
self dans cette ligne de code est L'objet de c1. Donc le self passé à p1 est aussi c1.
Le contenu ci-dessus vous présente le problème de l'héritage python à travers le code. J'espère qu'il vous sera utile !
Pour plus d'articles liés à une brève analyse des problèmes d'héritage python, veuillez faire attention au site Web PHP chinois !