Python实现通过继承覆盖方法示例


Posted in Python onJuly 02, 2018

本文实例讲述了Python实现通过继承覆盖方法。分享给大家供大家参考,具体如下:

Python真是太动态了,所有的方法默认都是虚的。子类定义父类同名函数之后,父类函数被覆盖。

class P(object):
  def foo(self):
    print "I am a P-foo()"
class C(P):
  def foo(self):
    print "I am a C-foo()"
>>>p=P()
>>>c=C()
>>>p.foo()
I am a P-foo()
>>>c.foo()
I am a C-foo()

这就引出了一个问题:重写__init__不会自动调用基类的__init__。在C++中如果使用了派生类默认构造函数的话,是会自动调用基类的默认默认构造函数的。C++中调用非默认构造函数是显示调用基类构造函数来初始化基类部分的。

class P(object):
  def __init__(self):
    print "P's constructor"
class C(P):
  def __init__(self):
    print "C's constructor"
>>>c=C()
C's constructor

如果需要调用基类构造函数时,可将C类定义改为

class C(P):
  def __init__(self):
 P.__init__(self)
    print "C's constructor"

或者

class C(P):
  def __init__(self):
 super(C,self).__init__()
    print "C's constructor"

使用super(className,self).functionName(没有self!!)的重点是不需要提供父类,这意味着如果改变了类继承关系,只需要改变一行代码(class C(P)),此时寻找基类的事由super函数完成。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python支持断点续传的多线程下载示例
Jan 16 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Django实现自定义404,500页面教程
Mar 26 Python
python版本的仿windows计划任务工具
Apr 30 Python
python批量修改文件编码格式的方法
May 31 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
Python类及获取对象属性方法解析
Jun 15 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
python tqdm用法及实例详解
Jun 16 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
Apr 04 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 #Python
Python 中的range(),以及列表切片方法
Jul 02 #Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 #Python
分享vim python缩进等一些配置
Jul 02 #Python
实践Vim配置python开发环境
Jul 02 #Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 #Python
Django实现分页功能
Jul 02 #Python
You might like
用PHP实现维护文件代码
2007/06/14 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP下 Mongodb 连接远程数据库的实例代码
2017/08/30 PHP
PHP赋值的内部是如何跑的详解
2019/01/13 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
PHP实现简单的计算器
2020/08/28 PHP
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
python列表操作实例
2015/01/14 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Python实现查找数据库最接近的数据
2020/06/08 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
大学新闻系求职信
2014/06/03 职场文书
计算机毕业生求职信
2014/06/10 职场文书
大连导游词
2015/02/12 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书