深入浅析python继承问题
有如下的代码:
classp1: def__init__(self,a,b): print("initinp1") self.a1=a self.b1=b self.f1() deff1(self): print("f1inp1") classc1(p1): def__init__(self,a,b,c=2): print("initinc1") p1.__init__(self,a,b) self.c1=c self.f1() deff1(self): print("f1inp2") classc2(c1): pass c=c2(11,22) print(c.a1) print(c.b1) print(c.c1)
然后代码的运行结果如下:
F:\python_code\test>pythonclass_init.py initinc1 initinp1 f1inp2 f1inp2 11 22 2
关于的代码的运行过程,我有以下的疑问,我在c1的__init__函数中会调用到p1.__init__(),然后会每次都是运行c1.f1()函数,没有运行p1.f1()的函数,在p1运行的f1(),怎么也是c1.f1()。为什么?
原因分析:
p1.__init__(self,a,b)
这行代码中的self是c1的对象。所以传给p1里面的self也就是c1的呀。
以上内容所述通过代码给大家介绍了python继承问题,希望对大家有所帮助!