返回一个类的所有实例

时间:2012-09-26 07:07:06

标签: python python-2.5

  

可能重复:
  Printing all instances of a class

有没有办法返回特殊类的每个实例? 我想得到每个对象的一些属性,然后删除对象。

1 个答案:

答案 0 :(得分:2)

你自己写的课程是一个吗?

  • 是:设计它以跟踪其实例 - 然后您可以查询该缓存
  • 不:没有好办法。

以下是跟踪实例的简短示例:

class Tracker(object):
    instances = list()
    def __init__(self):
        self.__class__.instances.append(self)
    @classmethod
    def projeny(cls):
        print "There are currently %d instances of Tracker" % len(cls.instances)
        for instance in cls.instances:
            print instance


t1 = Tracker()
t2 = Tracker()
Tracker.projeny()
t3 = Tracker()
Tracker.projeny()

给了我们:

There are currently 2 instances of Tracker
<__main__.Tracker object at 0x02237A30>
<__main__.Tracker object at 0x02237AD0>
There are currently 3 instances of Tracker
<__main__.Tracker object at 0x02237A30>
<__main__.Tracker object at 0x02237AD0>
<__main__.Tracker object at 0x02237AF0>

有关强大的实施,请参阅this answer