什么是跳过父方法的pythonic方法?

Vla*_*nin 4 python inheritance

class A:
  def open_spider(self, spider):
    #do some hacking

class B(A):
  def open_spider(self, spider):
    super(B, self).open_spider(spider)
    #something else
Run Code Online (Sandbox Code Playgroud)

现在我希望C调用A的方法而不是B,这至少可以通过两种方式完成:

  class C(B):
    def open_spider(self, spider):
      A.open_spider(self, spider)
      #do things

  class C(B):
    def open_spider(self, spider):
      super(B, self).open_spider(spider)
      #do things
Run Code Online (Sandbox Code Playgroud)

小智 6

你可以用第二种方式做到这一点.但是我必须说孩子跳过父母方法并且打电话给祖父母的部分是错误的,你应该再次看看你的设计并考虑一下.

  • 通常更好地解释为什么出现问题而不仅仅是出错.解释将帮助人们理解并使他们能够自己进行逻辑思考,而不是寻求他人的确认. (3认同)

che*_*ner 2

使用第二种方法;这就是为什么super 类作为其第一个参数的原因之一。