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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
python中bisect模块用法实例
Sep 25 Python
详解Python中的Cookie模块使用
Jul 06 Python
获取Django项目的全部url方法详解
Oct 26 Python
python实现windows下文件备份脚本
May 27 Python
Python使用folium excel绘制point
Jan 03 Python
python实现趣味图片字符化
Apr 30 Python
python函数定义和调用过程详解
Feb 09 Python
python正则过滤字母、中文、数字及特殊字符方法详解
Feb 11 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
windows系统Tensorflow2.x简单安装记录(图文)
Jan 18 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 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年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP生成唯一订单号
2015/07/05 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
javascript URL编码和解码使用说明
2010/04/12 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
详解Python3中yield生成器的用法
2015/08/20 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
Python实现结构体代码实例
2020/02/10 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
详解python with 上下文管理器
2020/09/02 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
开会迟到检讨书范文
2015/05/06 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
家访教师心得体会
2016/01/23 职场文书
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android