特定のデバッグ目的で、任意のオブジェクトの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
ただし、特定のオブジェクトのみをモンキーしたい場合は、クラスを動的に新しいものに書き換える必要があると思いますか?! さらに、組み込み型のdelにアクセスできないため、とにかくこれを行う必要がありますか?
誰でもそれを実装する方法を知っていますか?