Python super(Class,self).method vs super(Parent,self).method

时间:2013-02-07 04:51:19

标签: python inheritance parent super

这个问题来自以下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 个答案:

答案 0 :(得分:10)

super(B,self).do_work()

将调用do_work父类B所见的A.do_work函数,即super(A,self).do_work()


do_work

将调用A父类看到的object.do_work函数 - 即{{1}}(可能不存在,因此可能引发异常)。