【发布时间】:2017-01-27 22:33:57
【问题描述】:
MyClass 在module.py 中定义。我们无法修改它。但我们确实知道 Class 定义如下所示:
class MyClass:
def method(self, msg):
print 'from method:', msg
我从导入模块开始我的脚本,然后声明一个对象的实例:
import module
foo = module.MyClass()
那我自己写函数:
def function(msg):
print 'from function:', msg
现在,每次使用 foo.method('') 时,我都想调用 function(),所以它也会打印相同的消息。
这种情况会被称为monkey patching吗?如何实现所需要的?
【问题讨论】:
-
子类化它并覆盖
method()并使用super()调用基类的method()。 -
您是否有理由不只是创建一个子类?
-
对不起,我忘了说我不能继承
MyClass。
标签: python monkeypatching