rank | ▲ | ✰ | vote | url |
---|---|---|---|---|
19 | 710 | 261 | 493 | url |
理解Python中super()和init()方法
我试着理解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__()
print ChildA(),ChildB()
super()
的好处就是可以避免直接使用父类的名字.但是它主要用于多重继承,这里面有很多好玩的东西.如果还不了解的话可以看看官方文档
注意在Python3.0里语法有所改变:你可以用super().init()
替换super(ChildB, self).init()
.(在我看来非常nice)
原文: https://taizilongxu.gitbooks.io/stackoverflow-about-python/content/19/README.html