深入浅析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继承问题,希望对大家有所帮助!