当前位置: 首页 > 编程笔记 >

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

许曦
2023-03-14
本文向大家介绍Python中的super()方法使用简介,包括了Python中的super()方法使用简介的使用技巧和注意事项,需要的朋友参考一下

子类里访问父类的同名属性,而又不想直接引用父类的名字,因为说不定什么时候会去修改它,所以数据还是只保留一份的好。其实呢,还有更好的理由不去直接引用父类的名字,
这时候就该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在单html" target="_blank">继承中使用的例子:

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中的hypot()方法使用简介,包括了Python中的hypot()方法使用简介的使用技巧和注意事项,需要的朋友参考一下  hypot()方法返回的欧几里德范数 sqrt(x*x + y*y). 语法 以下是hypot()方法的语法: 注意:此函数是无法直接访问的,所以我们需要导入math模块,然后需要用math的静态对象来调用这个函数 参数     x -- 这必须是一

  • 本文向大家介绍Python中encode()方法的使用简介,包括了Python中encode()方法的使用简介的使用技巧和注意事项,需要的朋友参考一下  encode() 方法返回字符串的编码版本。默认编码是当前的默认字符串编码。可给予设置不同的错误处理机制。 语法 以下是encode()方法的语法: 参数     encoding -- 这是所使用的编码。对于所有的编码方案的列表,请访问:标准编

  • 本文向大家介绍python super函数使用方法详解,包括了python super函数使用方法详解的使用技巧和注意事项,需要的朋友参考一下 一、super函数简介 python内置函数super()主要用于类的多继承中,用来查找并调用父类的方法,所以在单重继承中用不用 super 都没关系;但是,使用 super() 是一个好的习惯。一般我们在子类中需要调用父类的方法时才会这么用; 二、sup

  • 本文向大家介绍Python中的super用法详解,包括了Python中的super用法详解的使用技巧和注意事项,需要的朋友参考一下 一、问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: 即,使用非绑定的类方法(用类名来引用的方法),并在参数列表中,引入待绑定的对象(self),从而达到调用父类的目的。

  • 问题内容: 我想知道何时使用什么风格的Python 3 super()。 到目前为止,我仅使用了没有参数的方法,并且按预期方式工作(由Java开发人员使用)。 问题: 在这种情况下,“约束”是什么意思? 绑定和未绑定的超级对象有什么区别? 什么时候使用,什么时候使用? 像这样命名超级类会更好吗? 问题答案: 让我们使用以下类进行演示: 未绑定对象不会将属性访问分配给类,您必须使用描述符协议: 绑定

  • rank ▲ ✰ vote url 19 710 261 493 url 理解Python中super()和__init__()方法 我试着理解super()方法.从表面上看,两个子类实现的功能都一样.我想问它们俩的区别在哪里? class Base(object): def __init__(self): print "Base created" class Child