深入浅析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实现MySQL操作的方法小结【安装,连接,增删改查等】
Jul 12 Python
Python模拟脉冲星伪信号频率实例代码
Jan 03 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
Apr 27 Python
Python实现简易过滤删除数字的方法小结
Jan 09 Python
Python学习笔记之图片人脸检测识别实例教程
Mar 06 Python
Python中psutil的介绍与用法
May 02 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
python Polars库的使用简介
Apr 21 Python
怎么用Python识别手势数字
Jun 07 Python
Python 居然可以在 Excel 中画画你知道吗
Feb 15 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP EOT定界符的使用详解
2008/09/30 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
浅谈bootstrap使用中的一些问题以及解决过程
2016/10/18 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
2017/04/25 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
JS页面动态绘图工具SVG,Canvas,VML介简介
2020/10/16 Javascript
[02:32]DOTA2亚洲邀请赛 VG战队巡礼
2015/02/03 DOTA
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python从子线程中获得返回值的方法
2019/01/30 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
详解vscode实现远程linux服务器上Python开发
2020/11/10 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
浅谈cookie和localStorage那些事
2019/08/27 HTML / CSS
AmazeUI图片轮播效果的示例代码
2020/08/20 HTML / CSS
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
函授本科毕业自我鉴定
2013/10/09 职场文书
成都人事代理协议书
2014/10/25 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
浅析Python OpenCV三种滤镜效果
2022/04/11 Python