解释Python中的monkey patching

解释Python中的monkey patching

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

历史

Monkey patch源自游击补丁(guerrilla patch)一词,游击战几乎可以定义为猴子物种。游击补丁指的是秘密地进行变更。不过,猴子补丁听起来更容易发音,所以现在被称为“Monkey patch”。在“Monkey-patch”一词中,monkey一词定义了dynamic一词。

Python中的Monkey patching

Python中的Monkey patching指的是在运行时修改或更新代码、类或任何模块。简单来说,我们可以在运行时更改类/模块的行为或工作方式,而不必更改整个Python代码。不过,有时候Monkey patching被认为是不良的编程实践,因为对象的定义未准确描述对象在代码中的行为。

示例

class first:
   def print(self)
      print(“hello world”)

输出

如果我们运行以上代码,将会生成以下输出结果:

Hello world

Monkey patching后的代码

示例

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程