Mig*_*ell 5 python inheritance
我是python的新手,但我有一个关于二级继承的问题.
我有这种情况:
class A:
def Something(self):
#Do Stuff
class B(A):
def SomethingElse(self):
#Do other stuff
class C(B):
def Something(self):
#Do additional stuff
Run Code Online (Sandbox Code Playgroud)
请注意,C类继承自B的B继承自A,但B类不实现Something()方法.
如果我为C类实例调用super(C,self).Something(),会发生什么?它会从A类调用该方法吗?
另外,如果B类确实实现了Something(),但是我想直接从C类调用A类的Something()(即绕过B类的实现),我该怎么做呢?
最后,有人可以向我解释为什么人们使用super()而不是直接调用父类的方法?谢谢.
Something()
从A
班级中调用。A.Something(self)
从调用C
。super()
和其他调用约定的解释需要一段时间。看一下关于MRO的原始文章,Python的Super is nifty, but you can't use it。