我有一个类Father
,我称之为run
方法来完成这项工作。我用Child
类继承这个类。这个看起来像这样:
class Father:
def __init__(self):
...
def run(self):
work1()
work2()
....
class Child(Father):
def run(self):
pass
通常,我使用pass
,因为大多数时候,孩子做的事情和父亲一样,只是从不同的上下文中被调用。然而,有时行为会改变。但是当它执行时,work1
、work2
等等仍然在执行。只应添加最后一个workn
怎么可能重写run
方法而不必从Father.run
复制整个代码,只需添加最后一条work
指令?我试过这个,很有效:
class Father:
def run(self):
work1()
...
run_additionnal_stuf()
def run_additionnal_stuf(self):
pass
class Child(Father):
def run_additionnal_stuf(self):
work()
然而,有没有更优雅的解决方案
首先,如果你的
Child
类没有改变一个方法,你就不需要用pass
来定义它。只需什么都不做,多亏了inheritance magic,子实例也将拥有该方法至于您的实际问题,如果您只想向子实例添加功能,您可以使用^{} 。事实上,从文件来看:
所以你可以:
简单的演示:
预期会打印出:
相关问题 更多 >
编程相关推荐