Mik*_*ike 4 python monkeypatching
给定一个带有类Foo的模块,该模块具有调用bar模块范围中定义的函数的方法,是否有办法在bar不修改模块的情况下替换不同的函数?
class Foo(object):
def run(self):
bar()
def bar():
return True
Run Code Online (Sandbox Code Playgroud)
那么我的一个实例Foo为,我想替代的功能baz()为bar(),而无需修改Foo类.
假设您的模块被调用deadbeef,并且您正在使用它
import deadbeef
…
foo_instance = deadbeef.Foo()
Run Code Online (Sandbox Code Playgroud)
然后你可以做到
import deadbeef
deadbeef.bar = baz
…
Run Code Online (Sandbox Code Playgroud)