Python 简明教程
Python - Monkey Patching
Python 中的 Monkey patching 指的是在运行时动态修改或扩展代码的做法,通常通过替换或向现有 modules 、 classes or methods 中添加新功能,而无需更改其原始源代码。此技术通常用于快速修复、调试或添加临时功能。
术语“ monkey patching ”源自于临时性变化想法,类似于猴子如何使用手头的任何材料修补东西。
Steps to Perform Monkey Patching
以下是展示我们如何执行猴子修补的步骤 −
-
首先,要应用猴子修补,我们必须导入我们要修改的模块或类。
-
在第二步中,我们必须使用所需的行为定义一个新函数或方法。
-
通过将其分配给类或模块的属性来用新实现替换原始函数或方法。
Example of Monkey Patching
现在,让我们通过一个示例了解 Monkey patching −
Define a Class or Module to Patch
首先,我们必须定义我们要修改的原始类或模块。以下是代码 −
# original_module.py
class MyClass:
def say_hello(self):
return "Hello, Welcome to Tutorialspoint!"
Create a Patching Function or Method
接下来,我们必须定义一个函数或方法来对原始类或模块进行猴子修补。此函数将包含我们想要添加的新行为或功能 −
# patch_module.py
from original_module import MyClass
# Define a new function to be patched
def new_say_hello(self):
return "Greetings!"
# Monkey patching MyClass with new_say_hello method
MyClass.say_hello = new_say_hello