深入浅析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 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
django 外键model的互相读取方法
Dec 15 Python
Python初学者常见错误详解
Jul 02 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
python实现批量修改文件名
Mar 23 Python
Python实现读取并写入Excel文件过程解析
May 27 Python
next在python中返回迭代器的实例方法
Dec 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
php实现的支持断点续传的文件下载类
2014/09/23 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
chrome原生方法之数组
2011/11/30 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
档案接收函范文
2014/01/10 职场文书
三年级科学教学反思
2014/01/29 职场文书
任命书范本大全
2014/06/06 职场文书
机械操作工岗位职责
2014/08/08 职场文书
践行三严三实心得体会
2014/10/13 职场文书
培训师岗位职责
2015/02/14 职场文书
世界文化遗产导游词
2019/08/07 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL