【发布时间】:2011-08-26 00:00:46
【问题描述】:
出于特定调试目的,我想包装任意对象的 del 函数以执行额外任务,例如将对象的最后一个值写入文件。
理想情况下我想写 猴子(x) 它应该意味着当x被删除时,x的最终值被打印出来
现在我发现 del 是一个类方法。所以下面是一个开始:
class Test:
def __str__(self):
return "Test"
def p(self):
print(str(self))
def monkey(x):
x.__class__.__del__=p
a=Test()
monkey(a)
del a
但是,如果我只想猴子特定的对象,我想我需要动态地将它们的类重写为一个新的类?!此外,无论如何我都需要这样做,因为我无法访问 del 的内置类型?
有人知道如何实现吗?
【问题讨论】:
标签: python monkeypatching