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

posted on 2017-03-20 16:03  Eric.Xi  阅读(68)  评论(0编辑  收藏  举报

导航