将代码附加到继承的类方法

时间:2015-02-16 19:48:42

标签: python class append

您如何附加到继承对象的方法?比方说,例如:

class ABeautifulClass(GoodClass):
    def __init__(self, **kw):
        # some code that will override inherited code
    def aNewMethod(self):
        # do something

现在我从GoodClass继承了代码,如何将代码附加到继承的方法。如果我从GoodClass继承了代码,我将如何追加它,而不是基本上删除它并重写它。这在Python中是否可行?

2 个答案:

答案 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

Learn more about super here

答案 1 :(得分:2)

在Python中,必须通过super关键字显式调用超类方法。因此,无论您是否这样做,都取决于您,以及您在方法中的位置。如果不这样做,那么您的代码将有效地替换父类中的代码;如果你在方法开始时这样做,你的代码就会有效地附加到它上面。

def aNewMethod(self):
    value = super(ABeautifulClass, self).aNewMethod()
    ... your own code goes here