2012-09-26 82 views

回答

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一个健壮的实现。

+0

是的,我自己写了课。你能否通过“跟踪实例”来解释你的意思? – wewa

+0

@wewa:新增示例。 –