在工作中,我們使用gevent創建一些異步服務器,並且有關何時執行與其他模塊相關的猴子修補的一些爭論。 gevent文檔顯示如下:gevent monkey修補訂單
from gevent import monkey
monkey.patch_socket()
import socket
其中,在導入庫模塊之前進行了猴子修補。
然而,我的經理覺得猴子打補丁的順序應該是這樣的:
import socket
from gevent import monkey
monkey.patch_socket()
凡庫模塊導入後,猴子修補被調用。這使得它看起來像猴子補丁看到套接字模塊已被導入,並在那一點上補丁。
我發現了一些討論,說這樣做的一種方式,和其他人說,做到另一個。我自己的簡單測試似乎說這沒關係。有沒有人有這個意見,有一些明確的原因,或爲什麼會說的引用?
在此先感謝! Doug
感謝您提供的「顛倒頭部」,我已經閱讀了幾次文檔,並且因爲我在網絡中看到的例子而感到困惑。應該相信文檔。 :) –
嗨Jason, 請澄清有什麼問題 (Python 3.5.2在Linux上) ** from gevent.monkey import patch_all; is_module_patched; patch_all();導入套接字is_module_patched(socket)** => _ False_ – dvska
'is_module_patched(modname)'需要一個模塊*名稱*而不是模塊本身。 –