gpt4 book ai didi

python - 调试时访问类的所有实例

转载 作者:行者123 更新时间:2023-11-28 19:58:30 24 4
gpt4 key购买 nike

python\pydev 有没有办法在调试时查看和访问某个类的实例?
例如,如果我在单个 python 解释器脚本中定义 SomeClass 和各种模块实例化此类,是否有办法查看解释器中存在多少此类实例并以集中方式访问它们的属性,而不强制代码从单个位置(例如定义类的模块)保存对它们的引用?

最佳答案

您可以使用 gc.get_objects() 找到所有此类对象:

例如,如果您在模块 othermod.py 中定义 Foo 类:

class Foo(object):
pass

f2 = Foo()

然后您可以像这样在脚本 script.py 中计算 Foo 的所有实例:

import gc
import othermod

f = othermod.Foo()

objs = gc.get_objects()
# print(len(objs))
# 3519

print(len([obj for obj in objs if isinstance(obj,othermod.Foo)]))
# 2

警告:gc.get_objects 不跟踪原子类型的实例(如 intstr),但听起来好像不是您要跟踪的对象类型。

关于python - 调试时访问类的所有实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9020075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com