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读写Excel文件方法介绍
Nov 22 Python
python读写二进制文件的方法
May 09 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
Python用for循环实现九九乘法表
May 31 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
python 读写文件,按行修改文件的方法
Jul 12 Python
python3使用pandas获取股票数据的方法
Dec 22 Python
python绘制漏斗图步骤详解
Mar 04 Python
通过python 执行 nohup 不生效的解决
Apr 16 Python
python实现xml转json文件的示例代码
Dec 30 Python
用python自动生成日历
Apr 24 Python
Python实现8种常用抽样方法
Jun 27 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实现检查文章是否被百度收录
2015/01/27 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
PHP的自定义模板引擎
2017/03/24 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
Prototype使用指南之base.js
2007/01/10 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
[01:52]2014DOTA2西雅图邀请赛 V社开大会你不知道的小秘密
2014/07/08 DOTA
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python获取当前日期和时间的方法
2015/04/30 Python
在Python中处理时间之clock()方法的使用
2015/05/22 Python
简单实现python进度条脚本
2017/12/18 Python
numpy返回array中元素的index方法
2018/06/27 Python
Python with语句和过程抽取思想
2019/12/23 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
Python timeit模块原理及使用方法
2020/10/10 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
实体的生命周期
2013/08/31 面试题
《这儿真好》教学反思
2014/02/22 职场文书
股东合作协议书范本
2014/04/14 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
医院领导班子整改方案
2014/10/01 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
开幕式邀请函
2015/01/31 职场文书
幼儿教师辞职信
2015/02/27 职场文书