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只会被运行一次.

下面是代码.

main.py

import json
import ujson
def monkey_patch_json():  json.__name__ = 'ujson'  json.dumps = ujson.dumps  json.loads = ujson.loads monkey_patch_json() print 'main.py',json.__name__ import sub

sub.py

import json
print 'sub.py',json.__name__

运行main.py,可以看到都是输出'ujson',说明后面import的json是被patch了的.

最后,注意不能单纯的json = ujson来替换.

转载于:https://www.cnblogs.com/work115/p/5817781.html

python的猴子补丁monkey patch相关推荐

  1. python画猴子_Python猴子补丁Monkey Patch用法实例解析

    属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...

  2. python猴子补丁_Python猴子补丁Monkey Patch用法实例解析

    属性在运行时的动态替换,叫做猴子补丁(Monkey Patch). 为什么叫猴子补丁 属性的运行时替换和猴子也没什么关系,关于猴子补丁的由来网上查到两种说法: 1.这个词原来为Guerrilla Pa ...

  3. python的猴子补丁(Monkey Patching)

    0. 参考文档 参考文档如下: https://achowdhary.com/monkey-patching/ https://www.cnblogs.com/xp1315458571/p/16049 ...

  4. 什么是猴子补丁(monkey patch)

    monkey patch指的是在运行时动态替换,一般是在startup的时候. 用过gevent就会知道,会在最开头的地方gevent.monkey.patch_all();把标准库中的thread/ ...

  5. 27.Python中的猴子补丁 (Monkey Patching)

    <Python编程的术与道:Python语言进阶>视频课程 <Python编程的术与道:Python语言进阶>视频课程链接:https://edu.csdn.net/cours ...

  6. 猴子补丁 - Monkey Patching

    0 猴子补丁 - Monkey Patching 1 定义, 2 猴子补丁(monkey patching) 3 在运行时动态修改模块.类或函数,通常是添加功能或修正缺陷.猴子补丁在代码运行时 4 ( ...

  7. 说说Python中猴子补丁是什么?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  8. 猴子补丁(Monkey Patching)

    猴子补丁是我在面试的时候接触的一到题,学python的时候,我根本就没有听说这个概念!那接下来我们来分析一下: 1.什么是猴子补丁? 2.猴子补丁的功能? 3.猴子补丁的应用场景? 一.什么是猴子补丁 ...

  9. 解决python使用猴子补丁时引入ssl错误

    首先是requests对https发起请求时报ssl错误 解决: requests提供了两个参数 1. verify 官方给出的解释为 当参数为False时,请求将接受由提交的任何TLS证书并将忽略主 ...

  10. python 猴子补丁_python面试题精讲——monkey patch(猴子补丁)

    前言本次依然是选自python面试题系列,将一个比较偏的概念,可能很多人没怎么听说过--猴子补丁,其实所讲的内容很简单,它得益于python灵活的语法.一切皆对象的思想,一起来看看看看吧!目录一.什么 ...

最新文章

  1. SpringBoot配置文件值注入方式
  2. linux驱动读取文件失败怎么办,linux – 由于单个驱动器读取错误导致软件RAID-1导致内核故障...
  3. html语言制作网页,HTML语言的网页制作技巧与方法
  4. socket 端口和地址复用
  5. [react] 你知道的react性能优化有哪些方法?
  6. java面试题4 牛客:运行下列代码,运行结果为
  7. C语言中auto,register,extern,static【转】
  8. keil stm32标准库放在哪里_STM32之PWM
  9. python连接redis哨兵_Python redis.sentinel方法代码示例
  10. MATLAB中的柱面与球面
  11. 飞控硬件在环之GPS模拟器
  12. Odin - Inspector and Serializer 学习笔记总结
  13. html代码 层次选择器,CSS样式类的实例代码(导航栏、分页、层级选择器)
  14. chrome浏览器小恐龙自动跑
  15. 知名互联网公司架构图
  16. 什么软件测试苹果手机循环电池,教你如何检测苹果手机电池的损耗
  17. 小小摩尔福斯之网络侦探
  18. Android 强大的图片加载缓存— Glide
  19. 如何通过CND指令创建一个新的Maven 项目,已经如何部署到tomcat 的webapps目录下
  20. 楚留香哪个服务器最新,楚留香官服和混合服哪个好 哪个服务器的人多

热门文章

  1. nyoj Splits the string 749
  2. 英文文本处理 c github_真香警告!有了这个搜索大法,GitHub可以玩到飞起来!
  3. 求两个等长升序序列的中位数
  4. 获取天气预报API_统计最容易生病时间段
  5. Day004 20210209-20210217
  6. html最大化和最小化,电脑上最大化最小化图标变了怎么办
  7. python爬虫 同花顺_python Flask+爬虫制作股票查询、历史数据、股评词云网页
  8. mysql语句解析_MYSQL中SQL执行分析
  9. Morris Traversal
  10. 【ZOJ 4097 The 19th Zhejiang University Programming Contest H】Rescue the Princess【边双连通缩点+LCA】