monkey_patch
Monkey patch
monkey patch指的是在运行时动态替换,一般是在startup的时候,python同一进程中module只会被运行一次
场景
例如:同一进程中多个模块中用的import json,后来发现ujson比自带json快了N倍,于是问题来了,难道几十个文件要一个个把import json改成import ujson as json吗?于是乎可以用monkey patch解决问题
demo
main.py
import json
import ujson
def monkey_patch_json1():
json.__name__ = 'ujson'
json.dumps = ujson.dumps
json.loads = ujson.loads
monkey_patch_json1()
print 'main.py',json.__name__
import sub
sub.py
import json
print 'sub.py',json.__name__
output
main.py ujson
sub.py ujson
行千里者始于足下