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查找相似单词的方法
Mar 05 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Django实现自定义404,500页面教程
Mar 26 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python图像处理入门(一)
Apr 04 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
在pycharm中实现删除bookmark
Feb 14 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
一劳永逸彻底解决pip install慢的办法
May 24 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
分享PHP入门的学习方法
2007/01/02 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
uploader秒传图片到服务器完整代码
2017/04/22 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
在antd Form表单中select设置初始值操作
2020/11/02 Javascript
简单解决Python文件中文编码问题
2015/11/22 Python
Python中将字典转换为列表的方法
2016/09/21 Python
python基础教程之五种数据类型详解
2017/01/12 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
骆驼官方商城:CAMEL
2016/11/22 全球购物
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
SQL中where和having的区别
2012/06/17 面试题
最新茶叶店创业计划书
2014/01/14 职场文书
新教师工作感言
2014/02/16 职场文书
人力资源管理毕业求职信
2014/08/05 职场文书
个人先进事迹材料
2014/12/29 职场文书
世界红十字日活动总结
2015/02/10 职场文书
创建文明城市倡议书
2015/04/28 职场文书
法人代表证明书范本
2015/06/18 职场文书
遗失证明范文
2015/06/19 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python