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



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

一般这种打补丁应用在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​方法,但是写了​time​​sleep​方法,但是为了方便修改去调用​gevent​中的​sleep​方法,我们选择给程序打补丁这样就可以调用到我们想调用的方法

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