Вы можете найти все такие объекты, используя gc.get_objects () :
Например, если вы определяете Foo
класс в модуле othermod.py
:
class Foo(object):
pass
f2 = Foo()
тогда вы можете посчитать все экземпляры Foo
в скрипте script.py
следующим образом:
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
не отслеживает экземпляры атомарных типов (например, int
или str
), но, похоже, это не тот тип объекта, который вы хотите отслеживать.