¿Cómo pasar argumentos adicionales a las funciones de registro de callback con la API de python torcida?

Tengo el siguiente código de Python usando la API torcida.

def function(self,filename): def results(result): //do something for i in range(int(numbers)) : name = something that has to do with the value of i df = function_which_returns_a defer(name) df.addCallback(results) 

Utiliza la API Twisted. Lo que quiero lograr es pasar a la función devuelta por llamada (resultados) el valor del nombre que se construye en cada iteración sin cambiar el contenido de las funciones de la función deferir () que coincide con el objeto diferido, por supuesto. En cada resultado de functions_which_returns_a deffer, el valor del nombre se debe pasar a results () para hacer algo con esto. Es decir: en la primera iteración cuando la ejecución alcanza la función de resultados, necesito que la función mantenga el resultado del objeto diferido junto con el valor de nombre cuando i = 0, luego, cuando i = 1, el objeto aplazado pasará con el valor de nombre, y así sucesivamente. Así que necesito cada vez que el resultado del objeto de aplazamiento cuando se llama con la variable de nombre alond con la variable de nombre. Cuando trato de usar directamente el valor de los resultados de nameinside (), mantiene siempre el valor de la última iteración que es racional, ya que function_which_returns_a defer (name) no ha regresado.

Puede pasar argumentos adicionales a una callback Deferred en el sitio de llamadas Deferred.addCallback simplemente pasando esos argumentos a Deferred.addCallback :

 def function(self,filename): def results(result, name): # do something for i in range(int(numbers)) : name = something that has to do with the value of i df = function_which_returns_a defer(name) df.addCallback(results, name) 

También puede pasar argumentos por palabra clave:

  df.addCallback(results, name=name) 

Todos los argumentos pasados ​​de esta manera a addCallback (o addErrback ) se pasan a la función de callback.