Python中的super()方法使用简介

作者:weakish 时间:2021-03-06 21:27:35 

子类里访问父类的同名属性,而又不想直接引用父类的名字,因为说不定什么时候会去修改它,所以数据还是只保留一份的好。其实呢,还有更好的理由不去直接引用父类的名字,
这时候就该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,super
0
投稿

猜你喜欢

  • Python Pygame实战之飞机大战的实现

    2023-10-19 17:30:30
  • JS获取对象代码总结

    2011-03-07 16:14:00
  • 深入了解Python中的变量类型标注

    2023-02-01 09:06:37
  • python自动化办公操作PPT的实现

    2023-06-14 03:43:47
  • css基础教程属性篇之盒子模型

    2008-07-29 12:05:00
  • python 多线程中join()的作用

    2022-11-27 12:24:24
  • Python爬虫爬取ts碎片视频+验证码登录功能

    2023-03-23 01:39:23
  • Python3+selenium配置常见报错解决方案

    2022-12-21 14:44:53
  • asp 通用修改和增加函数代码

    2011-03-16 11:15:00
  • 无序列表 li ul

    2008-07-29 13:00:00
  • Python使用add_subplot与subplot画子图操作示例

    2022-12-15 13:14:28
  • Python生成指定数量的优惠码实操内容

    2021-06-12 18:29:25
  • Python实现生成随机日期字符串的方法示例

    2023-10-27 11:51:37
  • Pytorch通过保存为ONNX模型转TensorRT5的实现

    2023-10-22 13:45:27
  • numpy中loadtxt 的用法详解

    2022-03-21 09:46:39
  • 解决python 读取excel时 日期变成数字并加.0的问题

    2021-07-11 18:53:41
  • Python根据当前日期取去年同星期日期

    2021-09-14 15:01:48
  • python实现linux下使用xcopy的方法

    2022-08-16 07:52:09
  • Windows下安装Django框架的方法简明教程

    2021-06-26 20:26:13
  • Python中assert函数的使用(含源代码)

    2022-07-18 19:46:49
  • asp之家 网络编程 m.aspxhome.com