Python super(Class, self).method vs super(Parent, self).method
Posted
技术标签:
【中文标题】Python super(Class, self).method vs super(Parent, self).method【英文标题】: 【发布时间】:2013-02-07 04:51:18 【问题描述】:这个问题源自以下question,假设class B
扩展class A
class A(object):
def do_work(self):
print 123
class B(A):
def do_work(self):
super(B,self).do_work() # versus the next statement
super(A,self).do_work() # what's the difference?
【问题讨论】:
【参考方案1】:super(B,self).do_work()
将调用do_work
的父类所看到的B
函数——即A.do_work
。
super(A,self).do_work()
将调用A
的父类所看到的do_work
函数,即object.do_work
(它可能不存在,因此可能会引发异常)。
【讨论】:
如果做 super(A, self).do_work 不是要走的路,那我该如何解决这个问题? ***.com/questions/14739809/… 谢谢! @JamesLin 为该问题添加了答案。以上是关于Python super(Class, self).method vs super(Parent, self).method的主要内容,如果未能解决你的问题,请参考以下文章