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 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
使用python3+xlrd解析Excel的实例
May 04 Python
Django+JS 实现点击头像即可更改头像的方法示例
Dec 26 Python
详解python常用命令行选项与环境变量
Feb 20 Python
python中的django是做什么的
Jul 31 Python
python爬虫selenium模块详解
Mar 30 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
Python中的xlrd模块使用整理
Jun 15 Python
Python编写nmap扫描工具
Jul 21 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个人网站架设连环讲(四)
2006/10/09 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php实现zip文件解压操作
2015/11/03 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
javascript中JSON对象与JSON字符串相互转换实例
2015/07/11 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
在类Unix系统上开始Python3编程入门
2015/08/20 Python
python中for用来遍历range函数的方法
2018/06/08 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
SQL Server面试题
2016/10/17 面试题
房地产还款计划书
2014/01/10 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
2014年学习全国道德模范事迹思想汇报
2014/09/15 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
武当山导游词
2015/02/03 职场文书
博士导师推荐信
2015/03/25 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书