什么是猴子补丁(monkey patch)
2017-02-25 17:49
253 查看
monkey patch指的是在运行时动态替换,一般是在startup的时候.
用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是它变成非阻塞的了.
之前做的一个游戏服务器,很多地方用的import json,后来发现ujson比自带json快了N倍,于是问题来了,难道几十个文件要一个个把import json改成import ujson as json吗?
其实只需要在进程startup的地方monkey patch就行了.是影响整个进程空间的.
同一进程空间中一个module只会被运行一次.
下面是代码.
用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/socket等给替换掉.这样我们在后面使用socket的时候可以跟平常一样使用,无需修改任何代码,但是它变成非阻塞的了.
之前做的一个游戏服务器,很多地方用的import json,后来发现ujson比自带json快了N倍,于是问题来了,难道几十个文件要一个个把import json改成import ujson as json吗?
其实只需要在进程startup的地方monkey patch就行了.是影响整个进程空间的.
同一进程空间中一个module只会被运行一次.
下面是代码.
main.py import json import ujson def monkey_patch_json(): json.__name__ = 'ujson' json.loads = ujson.loads print 'main.py',json.__name__import sub sub.py import jsonprint 'sub.py',json.__name__
相关文章推荐
- 什么是猴子补丁(monkey patch)
- 什么是Monkey Patch猴子补丁
- 什么是猴子补丁(monkey patch)
- 什么是猴子补丁(monkey patch)
- Monkey Patch猴子补丁编程方式及其在Ruby中的运用
- 详解Python编程中对Monkey Patch猴子补丁开发方式的运用
- Pyhon基础:Monkey Patch(猴子补丁)
- 详解Python编程中对Monkey Patch猴子补丁开发方式的运用
- Pyhon基础:Monkey Patch(猴子补丁)
- Pyhon基础:(猴子补丁)Monkey Patch
- Ruby使用Monkey Patch猴子补丁方式进行程序开发的示例
- 基础入门_Python-模块和包.Gevent异步/状态获取/超时设置/猴子补丁?
- JS 原型污染和猴子补丁 (装饰器)与redux中间件
- 猴子排序 然而并没有什么用 233
- Python Monkey patch猴子补丁
- python monkey 猴子补丁技术编程,修改python json dumps方法。
- 说说“猴子补丁”
- python 模块会导入几次?猴子补丁为什么可以实现?
- python并发编程gevent模块以及猴子补丁学习
- JS 原型污染和猴子补丁