python对象生命周期跟踪

Python objects life cycle tracing

在Python代码运行期间,是否有任何方法可以跟踪对象的生命周期?我知道sys.settrace函数用于设置回调,我可以在每个函数调用或代码行上停止,但在此期间如何访问"活动"对象?我想跟踪程序,这样我就可以在每次停止后进行随机检查,就好像我真的在源代码的停止位置添加了代码。


CPython中的gc(垃圾收集器)模块可以进行一些扩展。

垃圾收集器很少有函数使用对象作为参数,可以提供有关对象存在的一些信息:

1
2
3
gc.get_referrers(*objs)
gc.get_referents(*objs)
gc.is_tracked(obj)

要简单地检查对象是否存在,请使用此处描述的"try"