This article mainly introduces relevant information on in-depth analysis of Python inheritance issues. It is very good. Friends who are interested should take a look.
The following code is included:
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)
Then the running result of the code is as follows:
F:\python_code\test>python class_init.py init in c1 init in p1 f1 in p2 f1 in p2 11 22 2
Regarding the running process of the code, I have the following questions. In the __init__ function of c1, p1.__init__() will be called, and then the c1.f1() function will be run every time. There is no function that runs p1.f1(). How can f1() run in p1? c1.f1(). Why?
Cause analysis:
p1.__init__(self,a,b)
self in this line of code is The object of c1. So the self passed to p1 is also c1.
The above content introduces the python inheritance problem to you through the code. I hope it will be helpful to you!
For more articles related to a brief analysis of python inheritance issues, please pay attention to the PHP Chinese website!