[Python] Pattern singleton e chiamata __call__

Lawrence Oluyede l.oluyede a gmail.com
Gio 29 Mar 2007 11:26:56 CEST


> 1) La classe TestSingletonHelper è una classe "interna" alla classe
> TestSingleton, ed ha il metodo __call__

__call__ viene chiamato quando chiami un oggetto callable, le classi
sono "callable" dove per "callable" si intende SonoUnaClasse() (notare
le parentesi). Nel caso specifico in questo pezzo di codice viene
richiamato il __call__:

# Create a class level method that must be called to
    # get the single instance of TestSingleton.

    getInstance = TestSingletonHelper()


In tal modo TestSingletonHelper ritorna sempre la stessa istanza.

Vedi http://docs.python.org/ref/callable-types.html#l2h-220

> 2) def __call__( self, *args, **kw ) : perchè a __call__ viene passato
> *args, **kw ? Cosa sono? a cosa servono e quando secondo voi vengono usati?

*args sono gli argomenti sotto forma di tupla, **kw sono gli argomenti
aggiuntivi sotto forma di dict(). La spiegazione è da tutorial di
Python ;-)

http://docs.python.org/tut/node6.html#SECTION006700000000000000000

Parti da li fino al 4.7.4 (o magari leggiti tutto il tutorial che è meglio)


-- 
Lawrence, oluyede.org - neropercaso.it
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair


Maggiori informazioni sulla lista Python