Usare Singleton in Python

Mattepuffo's logo
Usare Singleton in Python

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!


Condividi

Commentami!