Python中的super()方法使用简介


Posted in Python onAugust 14, 2015

子类里访问父类的同名属性,而又不想直接引用父类的名字,因为说不定什么时候会去修改它,所以数据还是只保留一份的好。其实呢,还有更好的理由不去直接引用父类的名字,
这时候就该super()登场啦——

class A:
 def m(self):
  print('A')

class B(A):
 def m(self):
  print('B')
  super().m()

B().m()

当然 Python 2 里super() 是一定要参数的,所以得这么写:

class B(A):
 def m(self):
  print('B')
  super(B, self).m()

    super在单继承中使用的例子:

class Foo():
  def __init__(self, frob, frotz)
    self.frobnicate = frob
    self.frotz = frotz

class Bar(Foo):
  def __init__(self, frob, frizzle)
    super().__init__(frob, 34)
    self.frazzle = frizzle

此例子适合python 3.x,如果要在python2.x下使用则需要稍作调整,如下代码示例:

class Foo(object): 
  def __init__(self, frob, frotz): 
    self.frobnicate = frob 
    self.frotz = frotz 

class Bar(Foo): 
  def __init__(self, frob, frizzle): 
    super(Bar,self).__init__(frob,34) 
    self.frazzle = frizzle 

new = Bar("hello","world") 
print new.frobnicate 
print new.frazzle 
print new.frotz

需要提到自己的名字。这个名字也是动态查找的,在这种情况下替换第三方库中的类会出问题。

`super()`` 很好地解决了访问父类中的方法的问题。

Python 相关文章推荐
python使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 Python
python实现登录密码重置简易操作代码
Aug 14 Python
wxPython实现画图板
Aug 27 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
python实现坦克大战
Apr 24 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 Python
在Python中使用正则表达式的方法
Aug 13 #Python
简单讲解Python中的闭包
Aug 11 #Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 #Python
python实现web方式logview的方法
Aug 10 #Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 #Python
python用10行代码实现对黄色图片的检测功能
Aug 10 #Python
详解Python中dict与set的使用
Aug 10 #Python
You might like
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP7 其他修改
2021/03/09 PHP
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
学习js在线html(富文本,所见即所得)编辑器
2012/12/18 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
python学习之编写查询ip程序
2016/02/27 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python 中如何获取列表的索引
2019/07/02 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Django实现网页分页功能
2019/10/31 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
jupyter notebook 多环境conda kernel配置方式
2020/04/10 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
终止劳动合同协议书
2014/10/05 职场文书
认真学习保证书
2015/02/26 职场文书
工作自我评价范文
2015/03/05 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书