Creating a singleton in Python
以下是其中一種個人認為比較簡單的方法,缺點是無法避免被誤繼承的問題,但還不致於造成大問題。
class Singleton:
__single = None
def __init__(self):
if Singleton.__single:
raise Singleton.__single
Singleton.__single = self
self.name = None
def __str__(self):
pass
def dump(self):
if self.name == None:
print ''
else:
print "Name : " + self.name
def setName(self, name):
self.name = name
def getName(self):
return self.name
class WorldSingleton(Singleton):
pass
個人是習慣使用Eclipse 搭配 PyDev 這個plugin 來開發 python 程式,以上程式碼無法在開發時就先警告,要到執行階段才能發現。