Python对象生命周期跟踪

时间:2013-01-12 12:40:28

标签: python tracing

有没有办法在python代码运行期间跟踪对象的生命周期?我知道sys.settrace函数用于设置回调,我可以在每个函数调用或代码行上停止,但是如何在此期间访问“活”对象?我想跟踪程序,以便我可以在每次停止后进行随机检查,就像我真的在停止位置添加代码一样。

1 个答案:

答案 0 :(得分:2)

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

Garbage Collector 使用object作为参数的函数很少,可以提供有关对象存在的一些信息:

gc.get_referrers(*objs)
gc.get_referents(*objs)
gc.is_tracked(obj)

要简单检查对象是否存在,请使用'try'作为described here