深入浅析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 相关文章推荐
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
Python模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
Python实现随机生成任意数量车牌号
Jan 21 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
python搜索算法原理及实例讲解
Nov 18 Python
python 实现逻辑回归
Dec 30 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 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生成WAP页面
2006/10/09 PHP
php 动态执行带有参数的类方法
2009/04/10 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
原生JS实现轮播效果+学前端的感受(防止走火入魔)
2016/08/21 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
使用node打造自己的命令行工具方法教程
2018/03/26 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
详解js的视频和音频采集
2018/08/09 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
Djang中静态文件配置方法
2015/07/30 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python字符串中的单双引
2017/02/16 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python应用文件读取与登录注册功能
2019/09/23 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
python 通过exifread读取照片信息
2020/12/24 Python
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
房地产资料员岗位职责
2014/07/02 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers