小编Ger*_*nuk的帖子

猴子补丁__del__到新功能

出于特定的调试目的,我想包装任意对象的del函数来执行额外的任务,比如将对象的最后一个值写入文件.

理想情况下,我想编写monkey(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
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要特定的对象,我想我需要动态地将它们的类重写为一个新的?此外我还需要这样做,因为我无法访问内置类型的del

谁知道如何实现?

python monkeypatching

10
推荐指数
1
解决办法
1037
查看次数

标签 统计

monkeypatching ×1

python ×1