gpt4 book ai didi

python - 如何在python中获取某个类的所有实例?

转载 作者:行者123 更新时间:2023-12-05 00:41:43 28 4
gpt4 key购买 nike

有人问过类似的问题[问题]:Printing all instances of a class .虽然我不太关心打印它们,但我更想知道当前有多少实例是“事件的”。这种实例捕获的原因更像是设置一个计划作业,每小时检查这些“实时”未处理的实例并丰富数据。之后,要么设置此实例中的标志,要么仅删除此实例。Torsten Marek 在 [问题] 中的回答:Printing all instances of a class使用弱引用需要为这种类型的每个类调用基类构造函数,是否可以自动执行此操作?或者我们可以通过其他方法获取所有实例?

最佳答案

您可以自行跟踪它(请参阅其他答案)或询问垃圾收集器:

import gc

class Foo(object):
pass

foo1, foo2 = Foo(), Foo()

foocount = sum(1 for o in gc.get_referrers(Foo) if o.__class__ is Foo)

如果您有很多对象,这可能会有点慢,但通常还不错,而且它的优点是您可以轻松地与其他人的代码一起使用。

注意:使用 o.__class__ 而不是 type(o) 所以它适用于旧式类。

关于python - 如何在python中获取某个类的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149708/

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