• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

浅析python继承问题

python 搞代码 4年前 (2022-01-09) 17次浏览 已收录 0个评论

这篇文章主要介绍了深入浅析python继承问题的相关资料,非常不错,感兴趣的朋友一起看看吧

有如下的代码:

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\tes<i>本文来源gaodai$ma#com搞$代*码*网</i>t>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继承问题,希望对大家有所帮助!

更多浅析python继承问题相关文章请关注搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:浅析python继承问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址