monkey patch指的是在运行时动态替换,一般是替换(添加)类的方法、类或者模块都可以

首先使用系统模块的socket,打印socket.socket函数

然后在使用gevent模块的monkey.patch_socket()函数,打印socket.socket函数

socket.socket被动态替换成gevent的socket模块

演示代码如下

# -*- coding:utf8 -*-
# /usr/bin/env pythonimport socketprint(socket.socket)print("after monkey patch")from gevent import monkeymonkey.patch_socket()print(socket.socket)import selectprint(select.select)monkey.patch_select()
print("after monkey patch")print(select.select)

<class 'socket.socket'>
after monkey patch
<class 'gevent._socket3.socket'>
<built-in function select>
after monkey patch
<function select at 0x108989510>

monkey patch使用自己代码实现

import timeprint(time.time())def _time():return 'abc'time.time = _timeprint(time.time())

运行时动态替换掉了对应函数

转载于:https://www.cnblogs.com/KK150713/p/11176088.html

什么是monkey patch(猴子补丁)相关推荐

  1. Python中的Monkey Patch(猴子补丁)

    一.猴子补丁的介绍 关于猴子补丁为啥叫猴子补丁,据说是这样子的: 这个叫法起源于Zope框架,大家在修正Zope的Bug的时候经常在程序后面追加更新部分,这些被称作是"杂牌军补丁(gueri ...

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

    在Python语言中,monkey patch 指的是对于一个类或者模块所进行的动态修改.在Python语言中,我们其实可以在运行时修改代码的行为. # monk.py class A: def fu ...

  3. python运行时修改代码会怎样_python运行时修改代码的方法——monkey patch

    monkey patch (猴子补丁) 用来在运行时动态修改已有的代码,而不需要修改原始代码. 简单的monkey patch 实现: [Python] #coding=utf-8 def origi ...

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

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

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

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

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

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

  7. monkey patch(猴子补丁)

    一.什么是monkey patch 在网上也查了一下,关于这个名字起的比较随意,也勉强理解这样吧: 这个词原来叫Guerrilla Patch,杂牌军.游击队,说明这部分不是原装的,在英文里面guer ...

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

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

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

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

最新文章

  1. linux xxd查看二进制文件命令
  2. SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
  3. 每年一波FPGA系列新品,这次Achronix专为AI/ML应用打造……
  4. java 注释 过时_Java 注解
  5. java Servlet技术·笔记
  6. C++调用mask rcnn进行实时检测--opencv4.0
  7. webrtc学习———记录三:mediaStreamTrack
  8. NOI2022 题解
  9. TechNet中文网络广播office系列视频教程下载(一)(2007-02-28 09:18:18) 分类:Office...
  10. FPGA数字信号处理之乘法器
  11. 【LIMU-Bert论文阅读】
  12. 公务员考试情景面试题设计技术
  13. Machine Learning - A/B Test
  14. Ubuntu16.04 安装字体库
  15. WMS系统的功能,业务和定义
  16. VIL100数据集处理
  17. C# FileInfo(System.IO)
  18. 笔记:C#_对象池_异常代码: c0000005
  19. 史铁生散文《我与地坛》
  20. 浙江计算机职业高考试题,浙江省信息技术高考试卷及答案

热门文章

  1. IBM Rational software Architect 9.0安装包百度网盘
  2. 根号6用计算机怎么算,根号6等于多少怎么算
  3. 阿里云创始人王坚:你要相信你所坚持的
  4. DevExpress中动态设置主题、皮肤
  5. 《OSPF和IS-IS详解》一1.7 独立且平等
  6. 163邮箱自动化登录实现模块化【3】
  7. TerraBuilder 操作制作MPT
  8. 魔兽世界linux客户端,使用Wine在Linux下玩魔兽世界
  9. 尤雨溪的5KB petite-vue源码解析
  10. 正面杠腾讯音乐与网易云音乐,抖音与快手谁能“弯道超车“?