首页 > 其他 > 详细

什么是monkey patch(猴子补丁)

时间:2019-07-12 15:29:10      阅读:64      评论:0      收藏:0      [点我收藏+]

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

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

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

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

演示代码如下

# -*- coding:utf8 -*-
# /usr/bin/env python

import socket

print(socket.socket)

print("after monkey patch")

from gevent import monkey

monkey.patch_socket()

print(socket.socket)

import select

print(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 time

print(time.time())

def _time():
    return abc

time.time = _time

print(time.time())

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

什么是monkey patch(猴子补丁)

原文:https://www.cnblogs.com/KK150713/p/11176088.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!