深入浅析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 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Pandas之drop_duplicates:去除重复项方法
Apr 18 Python
python3实现逐字输出的方法
Jan 23 Python
python opencv实现证件照换底功能
Aug 19 Python
python读文件的步骤
Oct 08 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
Pycharm调试程序技巧小结
Aug 08 Python
如何完美的建立一个python项目
Oct 09 Python
Python用SSH连接到网络设备
Feb 18 Python
用Python可视化新冠疫情数据
Jan 18 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 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
?生?D片??C字串
2006/12/06 PHP
php中将html中的br换行符转换为文本输入中的换行符
2013/03/26 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP 自动加载的简单实现(推荐)
2016/08/12 PHP
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
jQuery实现的自定义弹出层效果实例详解
2016/09/04 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Python画图学习入门教程
2016/07/01 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
大学团支书的自我评价分享
2013/12/14 职场文书
投标单位介绍信
2014/01/09 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
红色革命电影观后感
2015/06/18 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL