python - 观察变量何时被删除

标签 python python-3.x

我使用 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/

相关文章:

python-3.x - Pytest assert_has_calls 用法

python - 如何避免解释器检查函数默认参数?

python - urwid 中是否有焦点改变事件?

python - 数据框中的循环函数

python - 数组中每个值相对于其他值的最小距离

python - Django OneToOneField,ManyToManyField,外键

python - 无法将 azure.cognitiveservices.search.web 搜索模块导入程序

python - 斐波那契数列python

python - 如何处理 PyTorch 中图像字幕目录中的多标签数据集

python - 如何在 pyplot 中绘制每个 x 值的 y 轴平均值