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 optparse模块使用实例
Apr 09 Python
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
Python下载指定页面上图片的方法
May 12 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Python 处理图片像素点的实例
Jan 08 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Django视图、传参和forms验证操作
Jul 15 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
Python提取PDF指定内容并生成新文件
Jun 09 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
php和javascript之间变量的传递实现代码
2012/12/19 PHP
php常用ODBC函数集(详细)
2013/06/24 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
实测在class的function中include的文件中非php的global全局环境
2013/07/15 PHP
php模板原理讲解
2013/11/13 PHP
PHP实现变色验证码实例
2014/01/06 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
Python笔记(叁)继续学习
2012/10/24 Python
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python 面试中 8 个必考问题
2018/11/16 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python使用列表的最佳方案
2020/08/12 Python
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
Hibernate持久层技术
2013/12/16 面试题
前台领班岗位职责
2013/12/04 职场文书
售后客服工作职责
2014/06/16 职场文书
公司户外活动总结
2014/07/04 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
mysql sql常用语句大全
2022/06/21 MySQL