一尘不染

Python-通过__init __()方法了解Python super()

python

尝试了解的使用super()。从外观上看,可以创建两个子类。

我很想知道以下两个子类之间的实际区别。

class Base(object):
def init(self):
print “Base created”

class ChildA(Base):
def init(self):
Base.init(self)

class ChildB(Base):
def init(self):
super(ChildB, self).init()

ChildA()
ChildB()


阅读 454

收藏
2020-02-05

共1个答案

一尘不染

super()单继承的好处是微不足道的-大多数情况下,你不必将基类的名称硬编码到每个使用其父方法的方法中。

但是,如果不使用,几乎不可能使用多重继承super()。其中包括常见的成语,如混合包,接口,抽象类等。这扩展到了以后扩展你的代码的代码。如果以后有人想编写一个扩展了的类Child和一个mixin,他们的代码将无法正常工作。

2020-02-05