python3 super().__init__() 和 __init__() 的区别 1、单继承 super().__int__()和 Base.__init__(self)是一样的, super()避免了基类的显式调用。 classBase(object):def__init__(self):print('Create Base')classChildClassA(Base):def__init__(self):print('Create ChildClassA') super...
Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx : 例: python3 直接写成 : super().__init__() python2 必须写成 :super(本类名, self).__init__()
一、其实,“类只是一个结构”,它并不是实例化出来的对象了,只是定义,那么在定义方法的时候想要用到 super 类的方法,你就只能用 super或者用类名来调用它。 class Person: def __init__(self, name, age): self.name = name self.age = age def eat(self, food): print(self.name, '正在吃:{}'.f...
class A(object): def __init__(self): self.n = 10 def minus(self, m): self.n -= m class B(A): def __init__(self): self.n = 7 def minus(self, m): super(B,self).minus(m) self.n -= 2 b=B() b.minus(2) print b.n 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 1...
在python3中可以使用__class__准确拿到当前类,如下: classlesscode(first):def__init__(self,value):super(__class__,self).__init__(value*2) 显得清楚而准确,而python2必须制定类的名称,这一点稍显逊色. 个人QQ:2533524298 个人微信:18350698935
# class A(object): python2 必须显示地继承object,下面是python3的版本 class A: def __init__(self): print("__init__ ") super(A, self).__init__() def __new__(cls): print("__new__ ") return super(A, cls).__new__(cls) ## 返回实例化对象(new一个) def __call__(self)...
self.b = 'b' print('init B')b = B()print(b.A)print(b.a)init BA--- ...
所以,你如果用的是 Python 2 的话,记得将本文的super()替换为suepr(Class, self)。 如果还有其他不兼容 Python 2 的情况,我会在文中注明的。 单继承 在单继承中super就像大家所想的那样,主要是用来调用父类的方法的。 classA:def__init__(self):self.n=2defadd(self,m):print('self is {0} @A.ad...
super().__init__() self.y=1 defget_x_y(self): print(self.x ,self.y) 返回结果是: 0 1 3. super() 的另外一个常见用法出现在覆盖Python特殊方法的代码中,比如: classProxy: def__init__(self, obj): self._obj=obj # Delegate attribute lookup to internal obj ...
super(Student, self).__init__() #python2写法 super().__init__() #python3写法 不仅仅是用于构造函数 super函数虽常用于构造函数,但是父类的其他函数一样也是可以用super函数的。 class A: def add(self, x): y = x + 1 print(y)