深入浅析python继承问题


Posted in Python onMay 29, 2016

有如下的代码:

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,a,b,c=2):
print("init in c1")
p1.__init__(self,a,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_code\test>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,a,b)

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

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

Python 相关文章推荐
Python3.0与2.X版本的区别实例分析
Aug 25 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
Python中matplotlib中文乱码解决办法
May 12 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
Jan 15 Python
pytorch梯度剪裁方式
Feb 04 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
Mar 06 Python
python实现测试工具(一)——命令行发送get请求
Oct 19 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 03 Python
Python获取百度热搜的完整代码
Apr 07 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 #Python
python自动翻译实现方法
May 28 #Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 #Python
Python程序中的观察者模式结构编写示例
May 27 #Python
Windows下python2.7.8安装图文教程
May 26 #Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 #Python
剖析Python的Twisted框架的核心特性
May 25 #Python
You might like
第八节 访问方式 [8]
2006/10/09 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JavaScript实现ASC转汉字及汉字转ASC的方法
2016/01/23 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
python实现的解析crontab配置文件代码
2014/06/30 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
实例详解Python模块decimal
2019/06/26 Python
delegate与普通函数的区别
2014/01/22 面试题
什么样的创业计划书可行性高?
2014/02/01 职场文书
本科生求职信
2014/06/17 职场文书
小学课外阅读总结
2014/07/09 职场文书
初婚未育证明样本
2014/10/24 职场文书
期末考试复习计划
2015/01/19 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
MySQL创建管理KEY分区
2022/04/13 MySQL
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang