Python对象生命周期追踪

标签 python trace

有没有办法跟踪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/

相关文章:

python - 尝试使用 Django 发送电子邮件时出现 "[Errno 101] Network is unreachable"

python - 安装基于 pyproject.toml 的项目所需的错误 : Could not build wheels for aiohttp,

php - Xdebug 跟踪 GUI?

java - 如何在雅虎通中跟踪数据包!

web-services - 无法使用证书 : Trace log obtained (error 500) 进行身份验证

python - Django:聚合 QuerySet 结果的更好方法

python - 在 matplotlib 中,有没有办法在条/线/补丁下方设置网格线,同时保留上方的刻度标签?

python - 正则表达式如何{m,n}?在 Python 中工作?

sql-server - 与查询单独运行时相比,查询在跟踪中显示的持续时间值更大

linker - Perf中用于确定库加载地址的机制