- 猴子补丁(monkey patch)的主要,monkey patch允许在运行期间动态修改一个类或模块(注意python中一切皆对象,包括类、方法、甚至是模块)功能就是动态的属性的替换
- 简单例子
class A:
def func(self):
print("Hi")
def monkey(self):
print("Hi, monkey")
a = A()
a.func()
'''运行结果
Hi
'''
- 使用猴子补丁
class A:
def func(self):
print("Hi")
def monkey(self):
print("Hi, monkey")
a = A()
A.func=A.monkey
a.func()
'''运行结果
Hi, monkey
'''
- 猴子补丁使用
class A:
def func(self):
print("Hi")
def monkey(self):
print("Hi, monkey")
def outer_monkey(a):
print("Hi,outer monkey")
a = A()
A.func=outer_monkey
a.func()
'''运行结果
Hi, outer monkey
'''