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使用range函数计算一组数和的方法
May 07 Python
python距离测量的方法
Mar 06 Python
python读取和保存视频文件
Apr 16 Python
opencv python 2D直方图的示例代码
Jul 20 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
python中tkinter的应用:修改字体的实例讲解
Jul 17 Python
python经典趣味24点游戏程序设计
Jul 26 Python
python进阶之自定义可迭代的类
Aug 20 Python
Python中的延迟绑定原理详解
Oct 11 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
Oct 14 Python
Python创建临时文件和文件夹
Aug 05 Python
Python入门基础之数字字符串与列表
Feb 01 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
谈谈PHP语法(3)
2006/10/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
jQuery中bind,live,delegate与one方法的用法及区别解析
2013/12/30 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
秦兵马俑教学反思
2014/02/07 职场文书
毕业生自荐信格式
2014/03/07 职场文书
党员教师一句话承诺
2014/05/30 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
学校食品安全责任书
2015/01/29 职场文书
教师节联欢会主持词
2015/07/04 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
python 中yaml文件用法大全
2021/07/04 Python