深入浅析python继承问题
发布时间:2020-05-24 02:01:27 所属栏目:Python 来源:互联网
导读:有如下的代码:classp1:def__init__(self,a,b):print("initinp1")self.a1=aself.b1=bself.f1()deff1(self):
|
有如下的代码:
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,b,c=2):
print("init in c1")
p1.__init__(self,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)
然后代码的运行结果如下: F:python_codetest>python class_init.py init in c1 init in p1 f1 in p2 f1 in p2 11 22 2 关于的代码的运行过程,我有以下的疑问,我在 c1 的 __init__ 函数中会调用到p1.__init__(),然后会每次都是运行 c1.f1() 函数,没有运行 p1.f1() 的函数,在 p1 运行的 f1(),怎么也是 c1.f1()。为什么? 原因分析: p1.__init__(self,b) 这行代码中的self是c1的对象。所以传给p1里面的self也就是c1的呀。 以上内容所述通过代码给大家介绍了python继承问题,希望对大家有所帮助! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
