Python 猴子補丁

2021-10-23 13:58:09 字數 722 閱讀 6754

生活中衣服破了洞,我們不想將其丟掉,就會打個補丁縫縫補補講究著用,

這種理解帶入程式中也是這樣,個別功能有問題,但我們並不想將其重構或丟掉,只想將其個別功能替換,這就是打補丁的概念,為啥稱呼為猴子補丁這就不得而知了,但我們要知道打補丁是種補救措施,並不一定是好事不要濫用;

程式中某個功能使用不理想效率低等,我們給它換成其它效率高的,這就等於打上補丁了,它是直接將你程式的某一功能換成其它的,這是一種思想/解決方案,

例如python中的內建json模組的loads和dumps功能,有人發現它們的訪問效率較低,就自主研發了乙個第三方模組叫ujson專門對其做了優化,但json模組的其他絕大部分功能的使用並沒有問題,這時候就可以對其進行替換,

import json

import ujson # pip install ujson 安裝命令

json.damps = ujson.damps

json.loads = ujson.loads

json.__name__ =

'***'

# 進行重新命名

這就替換完成了,純粹的替換,一定要在使用這模組功能前進行替換,不然使用的就是原功能

進行封裝,需要的時候呼叫使用更方便

defmonkey_patch()

: json.damps = ujson.damps

json.loads = ujson.loads

python 猴子補丁 Monkey patch

用來在執行時動態修改已有的 而不需要修改原始 在用gevent時 可實現併發同步非同步程式設計 會在最開頭的地方gevent.monkey.patch all 把標準庫中的thread socket等給替換掉.這樣我們在後面使用socket的時候可以跟平常一樣使用,無需修改任何 但是它變成非阻塞的了...

Python中的猴子補丁

monkey patch指的是在執行時動態替換,一般是在startup的時候.用過gevent就會知道,會在最開頭的地方gevent.monkey.patch all 把標準庫中的thread socket等給替換掉.這樣我們在後面使用socket的時候可以跟平常一樣使用,無需修改任何 但是它變成非...

python的猴子補丁monkey patch

monkey patch指的是在執行時動態替換,一般是在startup的時候.用過gevent就會知道,會在最開頭的地方gevent.monkey.patch all 把標準庫中的thread socket等給替換掉.這樣我們在後面使用socket的時候可以跟平常一樣使用,無需修改任何 但是它變成非...