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实现的百度站长自动URL提交小工具
Jun 27 Python
Python判断Abundant Number的方法
Jun 15 Python
python+selenium实现163邮箱自动登陆的方法
Dec 31 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
在python下读取并展示raw格式的图片实例
Jan 24 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
python 实现视频 图像帧提取
Dec 10 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python 中@property的用法详解
Jan 15 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Django模型验证器介绍与源码分析
Sep 08 Python
Python离线安装openpyxl模块的步骤
Mar 30 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中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
JavaScript中的类继承
2010/11/25 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
2020/03/19 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
超市营业员岗位职责
2013/12/20 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
学校欢迎标语
2014/06/18 职场文书
家庭困难证明
2014/10/12 职场文书
2015年食品安全工作总结
2015/05/15 职场文书
招商银行工作证明
2015/06/17 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python