在python代码运行期间,有什么方法可以跟踪对象的生命周期吗?我知道关于设置回调函数的sys.settrace函数,我可以停止每个函数调用或代码行,但在此期间如何访问“活动”对象?我想跟踪程序,这样我可以在每次停止后进行随机检查,就好像我真的在停止位置添加了代码。Python对象生命周期跟踪
2
A
回答
2
可以通过CPython中的gc(垃圾回收器)模块完成一些扩展。
Garbage Collector 有使用对象作为参数一些功能,并可以提供一些信息,有关对象存在:
gc.get_referrers(*objs)
gc.get_referents(*objs)
gc.is_tracked(obj)
只是简单的检查对象存在使用“试”作为described here
+0
尽管这个链接可能回答这个问题,但最好在这里包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 –
+0
该链接被提供给python文档。事实上,对我来说,评论OP问题会更好,但我还没有权利这样做。我会从链接粘贴一些信息。 –
相关问题
- 1. 跟踪对象生命周期
- 2. 跟踪QStandardItem生命周期
- 3. 升压Python对象生命周期
- 4. Python对象生命周期特征
- 5. MEF对象生命周期
- 6. PHP对象生命周期
- 7. 跟踪片段生命周期一样Application.ActivityLifecycleCallbacks
- 8. 数据仓库中的事务生命周期跟踪
- 9. 套接字对象生命周期
- 10. java中对象的生命周期
- 11. 休眠对象生命周期
- 12. NHibernate中的对象生命周期
- 13. InstancePerLifeTimeScope和对象的生命周期
- 14. 实例化对象生命周期
- 15. Android静态对象生命周期
- 16. .NET远程对象的生命周期
- 17. 线程池和对象生命周期
- 18. Lucene.net对象的生命周期?
- 19. C++临时对象的生命周期
- 20. thread_local和std :: future对象 - 对象的生命周期是什么?
- 21. C++对象和JavaScript对象的生命周期误同步
- 22. 如何在ASP应用程序中跟踪所有ActiveX/COM对象的生命周期?
- 23. 的OpenCV和Python:对象跟踪和保存对象被跟踪为图像
- 24. .NET对象生命周期\寿命VS非托管代码
- 25. 跟踪firstResponder对象
- 26. 由ChannelFactory生成的WCF对象生命周期
- 27. servlet生命周期
- 28. JUnit生命周期
- 29. popToViewController生命周期
- 30. JSF2.0生命周期
不知道你是什么试图在这里实现。你想收集什么样的信息? –
例如,在这一步执行传递给func'func1'的程序和1行已经在哪个对象创建了某种类型的obj1。我想检查这个obj1,例如从'dir(obj1)'得到结果或者检查'obj1'类。 – exbluesbreaker
你不能用'import pdb; pdb.set_trace()'?这给你一个交互式调试器。对象创建本身是不可追踪的,把痕迹放在它们的'__init__'或'__new__'函数中。 –