python - 如何查找和读取 get_referrers 的输出以及为什么它的长度与 python 中的 getrefcount 不同
问题描述
我正在尝试调试我的软件并找到对对象的每个引用,这样我就可以完全删除它。
所以当我这样做时:
gc.collect()
print('it has '+str(sys.getrefcount(my_obj))+' references')
refs = gc.get_referrers(my_obj)
for r in refs:
print('ref: '+str(r))
输出是:
it has 5 references
ref: <cell at 0x109758c40: ViAdd object at 0x109758a90>
- 为什么它说 5 个引用,但只返回一个?
- 如何检查什么是“单元格”地址?如何在我的代码中找到它?如何调试它,以便我可以在创建它的代码中找到位置?
我在为回调创建父子层次结构和 lambda 函数时使用了weakref,所以我不需要绑定对象方法
解决方案
推荐阅读
- javascript - 使用状态变量重新渲染 React 表单时出错
- r - 如何在保持单元格顺序的同时从上到下更改ggplot中一个类别的位置?
- python - 作为行级函数的参数传递的 pandas 数据框列,以将列的每个值应用于其各自的行
- three.js - 字符导向ThreeJS
- python - Python,使用多线程退出带有用户输入的 While 循环(cntrl+c 不起作用)
- python - 计算并保存具有日期的列之间的差异
- node.js - 如何从 LoopBack 模型文件生成 ERD
- c++ - 创建具有独特功能但数据类型相同的对象
- oracle - 杀死 dba_jobs_running 中的 oracle 作业
- twitter-bootstrap - Bootstrap 3 modal 从页脚开始,就像 Badoo 上的一样