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备份文件以及mysql数据库的脚本代码
Jun 10 Python
Python本地与全局命名空间用法实例
Jun 16 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
python中reduce()函数的使用方法示例
Sep 29 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
python opencv读mp4视频的实例
Dec 07 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
Django认证系统user对象实现过程解析
Mar 02 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 Python
PyTorch dropout设置训练和测试模式的实现
May 27 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的反射API
2017/02/26 PHP
php取出数组单个值的方法
2018/03/12 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
js判断浏览器类型及设备(移动页面开发)
2015/07/30 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
Vue插件之滑动验证码
2019/09/21 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Python常用内置函数总结
2015/02/08 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
python操作excel让工作自动化
2019/08/09 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
设计总监岗位职责
2013/12/07 职场文书
文明餐桌活动方案
2014/02/11 职场文书
考博专家推荐信
2014/05/10 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
python 离散点图画法的实现
2022/04/01 Python
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技