深入浅析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 contextlib模块使用示例
Feb 18 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
python基于ID3思想的决策树
Jan 03 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
Jan 08 Python
python3.6数独问题的解决
Jan 21 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
Pandas中resample方法详解
Jul 02 Python
python挖矿算力测试程序详解
Jul 03 Python
pandas.DataFrame的pivot()和unstack()实现行转列
Jul 06 Python
基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能
Jul 15 Python
Python django框架 web端视频加密的实例详解
Nov 20 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php 网上商城促销设计实例代码
2012/02/17 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
php生成zip文件类实例
2015/04/07 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
Vue项目引进ElementUI组件的方法
2018/11/11 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
Python中类的继承代码实例
2014/10/28 Python
Python发送email的3种方法
2015/04/28 Python
Python复制文件操作实例详解
2015/11/10 Python
对python 命令的-u参数详解
2018/12/03 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
在Python中使用turtle绘制多个同心圆示例
2019/11/23 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
C++面试题:关于链表和指针
2013/06/05 面试题
个人简历自荐信
2013/12/05 职场文书
总经理司机职责
2014/02/02 职场文书
节约用水标语
2014/06/11 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
公司更名通知函
2015/04/24 职场文书
python内置进制转换函数的操作
2021/06/02 Python
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js