猴子补丁
猴子补丁(monkey patch)的主要功能就是模块运行时动态的属性的替换。
- 运行时动态改变类的方法
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 #在运行的时候,才改变了func
a.func()
'''运行结果
Hi, monkey
'''
class A:
def func(self):
print("Hi")
def monkey(self):
print("Hi, monkey")
def outer_monkey(a): # a 这个参数是没有用到的,因为func有一个参数,如果这个函数没有参数的话不能这样直接赋值
print("Hi,outer monkey")
a = A()
A.func=outer_monkey
a.func()
'''运行结果
Hi, outer monkey
'''