您将如何附加到继承对象的方法?举例来说:
class ABeautifulClass(GoodClass):
def __init__(self, **kw):
# some code that will override inherited code
def aNewMethod(self):
# do something
现在,我已经从GoodClass
继承了代码,如何将代码附加到继承的方法上。如果我从GoodClass
继承了代码,该如何附加到它上面,而不是从根本上删除并重写它。这在Python中可行吗?
python大神给出的解决方案
在Python中,必须通过super
关键字显式地调用超类方法。因此,是否执行此操作取决于您,以及执行方法的位置。如果不这样做,那么您的代码将有效替换父类中的代码;否则,您的代码将无效。如果在方法开始时执行此操作,则代码将有效地追加到该方法的后面。
def aNewMethod(self):
value = super(ABeautifulClass, self).aNewMethod()
... your own code goes here