python中模块打补丁

前言:今天接触到一个常听的名词也感觉很深奥的词语,补丁,有点好奇就来研究研究


假定现在有模块一和模块二,想调用模块二中的一个方法,但是不小心写成了模块一中的方法,在不大浮动 改动主程序代码的前提下,通过打补丁修改主程序中调用的模块一的方法:

一般这种打补丁应用在gevent协程中,一般步骤如下:

  1. 导包:from gevent import monkey
  2. 调用方法:monkey.eatch_all()
  3. 最后按照自己之前写的开发流程写,但是其中的方法对象已经更换
"""导包:"""
from gevent import  monkey
import time
import gevent
monkey.patch_all()   #没有这句话补丁无效
def down(num):
    for i in range(num):
        time.sleep(1)
        print("下载")
def up(num):
    for i in range(num):
        time.sleep(1)
        print("上传")
# up=gevent.spawn(up,5)
# down=gevent.spawn(down,5)
# up.join()
# down.join()
gevent.joinall(
    [gevent.spawn(up,5),gevent.spawn(down,5)]
)

在上述例子中可以看出,我们想调用gevent中的sleep方法,但是写了timesleep方法,但是为了方便修改去调用gevent中的sleep方法,我们选择给程序打补丁这样就可以调用到我们想调用的方法

好处嘛就是在不改变原方法的前提下,又可以写我们自己想实现的一些功能,有时代码比较多的时候,不方便修改时,打补丁是您的不二之选哦

猜你喜欢

转载自blog.csdn.net/qq_45096273/article/details/107887984