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模块学习 re 正则表达式
May 19 Python
python控制台中实现进度条功能
Nov 10 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python的Flask框架应用调用Redis队列数据的方法
Jun 06 Python
Python控制多进程与多线程并发数总结
Oct 26 Python
win与linux系统中python requests 安装
Dec 04 Python
使用python实现tcp自动重连
Jul 02 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
python配置grpc环境
Jan 01 Python
详解python运行三种方式
May 13 Python
对python 中class与变量的使用方法详解
Jun 26 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
Jul 24 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循环输出数据库内容的代码
2008/05/24 PHP
PHP的SQL注入实现(测试代码安全不错)
2011/02/27 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
js脚本编写简单刷票投票系统
2017/06/27 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
js表达式与运算符简单操作示例
2020/02/15 Javascript
对django中render()与render_to_response()的区别详解
2018/10/16 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
Python面向对象封装操作案例详解
2019/12/31 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
高一物理教学反思
2014/01/24 职场文书
大学新生军训自我鉴定
2014/03/18 职场文书
访谈节目策划方案
2014/05/15 职场文书
老公保证书怎么写
2015/02/26 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
元旦主持词开场白
2015/05/29 职场文书
手把手教你使用TensorFlow2实现RNN
2021/07/15 Python
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang