有没有办法跟踪Python代码运行过程中对象的生命周期?我知道用于设置回调的 sys.settrace 函数,我可以在每个函数调用或代码行上停止,但是在此期间如何访问“事件”对象?我想跟踪程序,以便我可以在每次停止后进行随机检查,就好像我真的在源中的停止位置添加了代码一样。
最佳答案
在某种程度上可以通过 CPython 中的 gc(垃圾收集器)模块来完成。
Garbage Collector 使用对象作为参数的函数很少,可以提供一些有关对象存在的信息:
gc.get_referrers(*objs)
gc.get_referents(*objs)
gc.is_tracked(obj)
要简单地检查对象是否存在,请使用“try”作为 described here
关于Python对象生命周期追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14293398/