深入浅析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类继承与子类实例初始化用法分析
Apr 17 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
Python进程间通信Queue实例解析
Jan 25 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
Win10系统下安装labelme及json文件批量转化方法
Jul 30 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
python编写俄罗斯方块
Mar 13 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
Aug 18 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 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
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
CI框架Session.php源码分析
2014/11/03 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
QQ登录简单实现代码
2021/03/09 Javascript
jQuery的一些注意
2006/12/06 Javascript
一些常用的JS功能函数代码
2009/06/23 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
JS使用iView的Dropdown实现一个右键菜单
2019/05/06 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
python妹子图简单爬虫实例
2015/07/07 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
Python的多维空数组赋值方法
2018/04/13 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
方法名是否可以与构造器的名字相同
2012/06/04 面试题
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python