(ほとんど写経なんだけど)とにかくできたー!と思って、調べてみたら山のように実装があって、ま、そんなもんかと思い直す。
class Singleton_(object): '''singleton pattern implementation reffered from thread http://www.python.jp/pipermail/python-ml-jp/2002-November/002075.html , thanks! usage: inherit Singleton and call Inheretee.instance()''' instance_ = None def __new__(cls): if cls.instance_ is None: cls.stat = [] cls.instance_ = object.__new__(cls) return cls.instance_ def instance(cls): if not cls.instance_: cls.instance_ = Hoge() return cls.instance_ instance = classmethod(instance)
で、こいつを継承して適当に使う。
class Hoge(Singleton_): array = [] def append(self, v): self.array.append(v) def p(self): for v in self.array: print v Hoge.instance().append('aaaa') Hoge.instance().append('bbbb') Hoge.instance().p()
とりあえず動いたけど、Singleton_.instance()内にHoge()が残ってるのを何とかしたいところ。何とかなると思うけどとりあえず投稿>