[Python] Domanda su twisted ed i deferred
aleuser
aleuser a inwind.it
Sab 23 Feb 2008 09:43:40 CET
Valentino Volonghi wrote:
> Tutte le callback hanno SEMPRE come argomento il valore
> ritornato dalla callback precedente.
>
> La lambda non e` quindi necessaria.
>
Beh, si, lo sapevo e credo di averlo dimostrato nel codice.
Forse mi ero spiegato male, parlavo di quando "la callback ha come
argomento una deferred...", cioè al caso tipo:
@transact #decoratore che utilizza deferToThread
def tt(arg1, arg2, arg3):
return
def funz(arg1):
return
dd = ...
dd.addCallback...
dd.addCallback(tt)
dd.addCallback(funz)
...
In questo caso accade che "funz" ha come unico argomento una deferred, e
cosa può fare per attendere che sia finita?
Quindi in genere io scrivo
...
dd.addCallback(lambda x: tt(x, arg2, arg3))
dd.addCallback(funz)
...
e "funz" viene chiamata esattamente alla fine della funzione "tt" e le
viene passato correttamente l'argomento resituito (in questo caso None)
E' stato il caso più difficile che mi sono trovato davanti quando mi
misi a studiare twisted; spero di aver risolto in modo ottimale
Alessandro
More information about the Python
mailing list