我使用 Python 作为库的包装器,出于所需原因,该库将某些对象保留在内存中,直到进程被终止并且系统 GC 删除它们(或者发送命令来显式删除它们)。
用户可以使用 Python 函数检索对这些对象之一的引用,因此我知道用户何时访问它们,但我不知道用户何时完成/em> 访问它们。
我的问题是:在Python中是否可以观察变量何时被删除(由于重新分配、超出范围、垃圾回收等原因)?我可以观察变量的状态变化吗(类似于 Swift 的 didSet/willSet
)?
最佳答案
Python 调用 __del__
即将销毁对象时的魔术方法。
您可以覆盖它并添加您的逻辑。
class ObserveDel:
def __del__(self):
# do your stuff
或者只是将其替换到位。
def _handle_del(obj):
# do your stuff
a.__del__ = _handle_del
关于python - 观察变量何时被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55348028/