深入浅析python继承问题

时间:2021-05-22

有如下的代码:

class p1:def __init__(self,a,b):print("init in p1")self.a1=aself.b1=bself.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=cself.f1()def f1(self):print("f1 in p2")class c2(c1):passc=c2(11,22)print(c.a1)print(c.b1)print(c.c1)

然后代码的运行结果如下:

F:\python_code\test>python class_init.pyinit in c1init in p1f1 in p2f1 in p211222

关于的代码的运行过程,我有以下的疑问,我在 c1 的 __init__ 函数中会调用到p1.__init__(),然后会每次都是运行 c1.f1() 函数,没有运行 p1.f1() 的函数,在 p1 运行的 f1(),怎么也是 c1.f1()。为什么?

原因分析:

p1.__init__(self,a,b)

这行代码中的self是c1的对象。所以传给p1里面的self也就是c1的呀。

以上内容所述通过代码给大家介绍了python继承问题,希望对大家有所帮助!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章