什么是猴子补丁
生活中衣服破了洞,我们不想将其丢掉,就会打个补丁缝缝补补讲究着用,
这种理解带入程序中也是这样,个别功能有问题,但我们并不想将其重构或丢掉,只想将其个别功能替换,这就是打补丁的概念,为啥称呼为猴子补丁这就不得而知了,但我们要知道打补丁是种补救措施,并不一定是好事不要滥用;
使用解析
程序中某个功能使用不理想效率低等,我们给它换成其它效率高的,这就等于打上补丁了,它是直接将你程序的某一功能换成其它的,这是一种思想/解决方案,
例如Python中的内置json模块的loads和dumps功能,有人发现它们的存取效率较低,就自主研发了一个第三方模块叫ujson专门对其做了优化,但json模块的其他绝大部分功能的使用并没有问题,这时候就可以对其进行替换,
import json
import ujson # pip install ujson 安装命令
json.damps = ujson.damps
json.loads = ujson.loads
json.__name__ = 'xxx' # 进行重命名
这就替换完成了,纯粹的替换,一定要在使用这模块功能前进行替换,不然使用的就是原功能
进行封装,需要的时候调用使用更方便
def monkey_patch():
json.damps = ujson.damps
json.loads = ujson.loads