In [1]: class A(object): pass
In [2]: class B: pass
In [3]: test1 = [A() for i in range(3)]
In [4]: test2 = [A() for i in range(3)]
In [5]: test3 = [B() for i in range(5)]
In [6]: import objgraph
In [7]: objgraph.by_type('A')
Out[7]:
[<__main__.A at 0x2ccc130>,
<__main__.A at 0x2ccc150>,
<__main__.A at 0x2ccc170>,
<__main__.A at 0x2cbb790>,
<__main__.A at 0x2cbb1b0>,
<__main__.A at 0x2cbb7f0>]
另一种选择是使用^{} 模块:
但它对老式的课程不起作用:
objgraph
使用来自垃圾收集器的信息,如unutbu应答。你知道吗您可以使用gc.get_objects()找到所有此类对象:
例如,如果在模块
othermod.py
中定义Foo
类:然后您可以这样计算脚本
script.py
中Foo
的所有实例:注意:
gc.get_objects
不跟踪原子类型的实例(如int
或str
),但听起来这不是您要跟踪的对象类型。你知道吗相关问题 更多 >
编程相关推荐