Python で Singleton/シングルトン パターン
2006.12.12
PythonでSingletonパターンを実現する方法.
class Singleton(type): def __init__(self, *args): type.__init__(self, *args) self._instance = None def __call__(self, *args): if self._instance is None : self._instance = type.__call__(self, *args) return self._instanceここで見つけました.http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/412551 Python Cookbook のサイトを探すと幾つか見つかりますが,このコードが一番気に入ったのでこれを利用しています. RDBへのコネクションを管理するクラス等で以下のように使っています.
import singleton import psycopg2.psycopg1 as dbapi2 import psycopg2.extras DictCursor = psycopg2.extras.DictCursor class DBConnectionManager : __metaclass__ = singleton.Singleton def __init__(self, dsn) : self.dsn = dsn self.con = None self.closed = True def getcon(self) : if self.closed : self.con = dbapi2.connect(self.dsn) self.closed = False return self.con def close(self) : if not self.closed : self.con.close() self.closed = True
カテゴリー:技術情報メモ