解释 Python 中的 monkey patching?

pythonserver side programmingprogramming更新于 2024/2/16 12:06:00

Monkey patching 是一种在运行时动态修改一段代码的技术。实际上,通过执行 monkey patch,我们可以改变代码的行为,但不会影响原始源代码。

历史

Monkey patch 源自单词 guerrilla patch,guerrilla 几乎意味着 gorilla,可以定义猴子物种。guerrilla patch 指的是偷偷摸摸地改变。但是 money patch 似乎很容易发音,所以现在它被称为"Monkey patch"。在"Monkey-patch"一词中,monkey 一词定义了 dynamic 一词。

Python 中的 Monkey patching

Python 中的 Monkey patching 是指在运行时修改或更新一段代码、类或任何模块。简而言之,我们可以在运行时更改类/模块的行为或工作,而无需更改整个 Python 代码。但有时猴子补丁被认为是不好的做法,因为对象的定义不能准确描述对象在代码中的行为方式。

示例

class first: def print(self) print("hello world")

输出

如果我们运行上述代码,它将生成以下输出 -

Hello world

修补后的代码

示例

Import monkey def monkey_function(self): print("Hello world") # updating the print() with monkey_function() monkey.A.print = monkey_function # revoking method print() as method monkey_function() obj = monkey.A() obj print()

输出

如果我们运行上述代码,它将生成以下输出 -

Hello world


相关文章