iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
自我挑戰組

Python 學習整理系列 第 24

Day24. 什麼是 monkey patching?

  • 分享至 

  • xImage
  •  

可以將 runtime ( 執行中 ) 的程式,動態的改變 class or module or function,

且不需要修改 source code,通常使用在增加功能 ( 暫時性 ) 和修正 bugs。

例子:

class A:
    def speak(self):
        return "hello"


def speak_patch(self):
    return "world"


A.speak = speak_patch  # <2>
some_class = A()
print('some_class.speak():', some_class.speak())  # <1>

<1> 的部分會顯示 world,而不會顯示 hello,原因是因為我們在 <2> 的部分

將它 Monkey Patch 了,使用 speak_patch 這個 function 去取代掉原來的 speak


參考資料

python - What is monkey patching? - Stack Overflow

What is the Monkey Patch


上一篇
Day23. List v.s. Turple
下一篇
Day25.什麼是 garbage collection
系列文
Python 學習整理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言