Usare Singleton in Python
Per creare classi Singleton in Python, abbiamo parecchie alternative.
Non saprei dirvi quale sia la migliore, visto che tra tutte quelle trovate in giro mi sono trovato bene con il codice che vedete più sotto.
E semplicemente perchè è un codice più simile a quello con cui sono abituato in Java o PHP.
(Devo essere sincero: la sintassi Python la digerisco ancora poco).
Questo un esempio:
class Singleton:
__instance = None
@staticmethod
def getInstance():
if Singleton.__instance == None:
Singleton()
return Singleton.__instance
def __init__(self):
if Singleton.__instance != None:
raise Exception("Classe singleton")
else:
Singleton.__instance = self
def printNome(self, nome):
print(nome)
a = Singleton.getInstance()
print(a)
b = Singleton.getInstance()
print(b)
Questo quello che mi appare in console:
<__main__.Singleton object at 0x7ff42afcc748>
<__main__.Singleton object at 0x7ff42afcc748>
Come vedete viene stampata la stessa istanza in entrambi i casi.
Enjoy!
python singleton
Commentami!