Python Monkey Patch 入門教學
前言
Python 是近來十分火紅的程式語言,不管是網站開發、遊戲開發或是資料科學都可以看見 Python 的身影,本系列文章將透過複習 Python 小 tips,讓讀者可以重新認識 Python。這次我們先來認識一下 Monkey Patch 這個程式設計上的小技巧。
什麼是 Monkey Patch
簡單來說,Monkey Patch 就是在 run time 時動態更改 class 或是 module 已經定義好的函數或是屬性內容。實務上常見的使用在 test 上用來 mock 行為或是 gevent 函式庫等。
1 | A MonkeyPatch is a piece of Python code which extends or modifies other code at runtime (typically at startup). |
製作第一個 Python Monkey Patch
我們這邊開了一個簡單的 monkey.py 檔案,裡面放置 demo 用的 class:MyClass,裡面有個 method 叫 f,會列印出 f()
字串,
1 | # monkey.py |
此時我們在另外一個 main.py 檔案引入 monkey module,並替換掉 f function 為 monkey_f,這樣定義的出來的 instance 呼叫方法 f() 印出的則為 monkey_f()
1 | # main.py |
總結
以上就是 Python Monkey Patch 簡單介紹,Python Monkey Patch 主要用於動態於 run time 改變 class 的屬性或是方法,實務上常見的使用在 test 上用來 mock 行為或是 gevent 函式庫等地方。
延伸閱讀
- 源码分析之gevent monkey.patch_all实现原理
- What is monkey patching?
- Monkey-patching in Python: a magic trick or a powerful tool?
關於作者:
@kdchang 文藝型開發者,夢想是做出人們想用的產品和辦一所心目中理想的學校。A Starter, Software Engineer & Maker. JavaScript, Python & Arduino/Android lover.:)
(image via semaphoreci)
喜歡我們的文章嗎?歡迎分享按讚給予我們支持和鼓勵!
留言討論