Python动态修改实例对象的方法
代码如下:
import types
# 定义一个类
class MyClass:
def original_method(self):
# 原始的执行函数
print("原始的执行函数")
# 创建类的实例
my_object = MyClass()
# 定义新的执行函数
def new_function(self):
# 在这里定义新的执行函数
print("新的执行函数")
# 将函数转换为方法,并将实例对象作为参数传递
my_object.original_method = types.MethodType(new_function, my_object)
# 调用新的方法
my_object.original_method()
如果直接my_object.original_method = new_function
, 那么在调用时必须输入self参数, 比如my_object.original_method(my_object)
.