Poichè il Python non prevede la possibilità di definire dei costruttori privati, è necessario utilizzare qualche stratagemma per evitare che venga creata più di una istanza della classe che si vuole definire come Singleton. Un'idea è quella di scatenare un'eccezione se esiste già un oggetto di classe Singleton attivo. Come oggetto dell'eccezione viene utilizzata la stessa istanza attiva della classe.
class Singleton:
__istanza = None
def __init__( self ):
if Singleton.__istanza:
raise Singleton.__istanza
Singleton.__istanza = self
def helloWorld(self):
print 'Hello World'
class UsaSingleton:
s = Singleton()
s.helloWorld()