PythonでSingleton
PythonでSingletonの実装の復習。
SingletonパターンはよくDB関連の箇所で使われていると思います。
なのでPythonではお手軽なSQLiteで実装してみました。
#!/usr/bin/env python
# -*- coding:utf-8 -*-import sys, sqlite3
class Singleton:
instance = None
def __init__(self, *args):
self.instance = Nonedef __call__(self, *args):
if self.instance is None:
self.instance = sqlite3.connect(":memory:");
return self.instance
class singletonExample:
instance = None
def getInstance(self, *args):
if self.instance is None:
self.instance = Singleton()()
return self.instance
if __name__ == "__main__":
try:
print(singletonExample().getInstance())
print(singletonExample().getInstance())
print(singletonExample().getInstance())
print(singletonExample().getInstance())
print(dir(singletonExample().getInstance()))
except Exception, e:
print(e)exit(0)
printで出力されたアドレスが同じことが確認できます