您如何附加到继承对象的方法?比方说,例如:
class ABeautifulClass(GoodClass):
def __init__(self, **kw):
# some code that will override inherited code
def aNewMethod(self):
# do something
现在我从GoodClass
继承了代码,如何将代码附加到继承的方法。如果我从GoodClass
继承了代码,我将如何追加它,而不是基本上删除它并重写它。这在Python中是否可行?
答案 0 :(得分:3)
尝试使用超级
class ABeautifulClass(GoodClass):
def __init__(self, **kw):
# some code that will override inherited code
def aNewMethod(self):
ret_val = super().aNewMethod() #The return value of the inherited method, you can remove it if the method returns None
# do something
答案 1 :(得分:2)
在Python中,必须通过super
关键字显式调用超类方法。因此,无论您是否这样做,都取决于您,以及您在方法中的位置。如果不这样做,那么您的代码将有效地替换父类中的代码;如果你在方法开始时这样做,你的代码就会有效地附加到它上面。
def aNewMethod(self):
value = super(ABeautifulClass, self).aNewMethod()
... your own code goes here