在python中部分覆盖父方法

Вла*_*нко 5 python inheritance overwrite

我有一种情况,当我需要覆盖父方法但只在一行.我的初始代码非常大,所以我在一个例子中澄清了我的意思.我有父母的方法:

class parent():
    def method(self):
        bla
        bla
        print("Parent method is working")
        bla
        bla
Run Code Online (Sandbox Code Playgroud)

和孩子:

class child(parent):
    def method(self):
        bla
        bla
        print("Child method working")
        bla
        bla
Run Code Online (Sandbox Code Playgroud)

如您所见,两种方法几乎相同,但一条线不同.我是否必须在子方法中编写相同的代码才能打印不同的输出,或者python中有黑暗魔法如何只覆盖一行?

Syl*_*sne 6

您可以引入在子项中覆盖的辅助方法.

class parent(object):
  def method(self):
    blah
    self.helper()
    blah
  def helper(self):
    print("parent running")

class child(parent):
  def helper(self):
    print("child running")
Run Code Online (Sandbox Code Playgroud)