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实现简单的相似图片搜索的教程
Apr 23 Python
python将文本转换成图片输出的方法
Apr 28 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
Python实现感知机(PLA)算法
Dec 20 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
Python数据库小程序源代码
Sep 15 Python
python装饰器使用实例详解
Dec 14 Python
解决python replace函数替换无效问题
Jan 18 Python
利用python进行文件操作
Dec 04 Python
在python中对于bool布尔值的取反操作
Dec 11 Python
python模块内置属性概念及实例
Feb 18 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
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
jQuery选择器全集详解
2014/11/24 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
js实现图片无缝滚动
2015/12/23 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
批量将ppt转换为pdf的Python代码 只要27行!
2018/02/26 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
TensorFlow实现模型评估
2018/09/07 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
助人为乐表扬信范文
2014/01/14 职场文书
工作违纪检讨书
2014/02/17 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
感谢信格式范文
2015/01/22 职场文书
医院党建工作总结2015
2015/05/26 职场文书