0

重複の可能性:
クラスのすべてのインスタンスを印刷する

特別なクラスのすべてのインスタンスを返す方法はありますか?すべてのオブジェクトのいくつかの属性を取得してから、オブジェクトを削除したいと思います。

4

1 に答える 1

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>

堅牢な実装については、この回答を参照してください。

于 2012-09-26T07:33:21.060 に答える