Как передать дополнительные аргументы в функции регистра обратного вызова с помощью twisted python api?

У меня есть следующий код python, использующий API twisted.

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)

Он использует API Twisted. Я хочу добиться того, чтобы передавать в вызываемую функцию (results) значение имени, которое строится в каждой итерации, не изменяя содержимого функции functions_which_returns_a defer() вместе с объектом deferred, конечно. В каждом результате функции functions_which_returns_a deffer значение имени должно быть передано в results(), чтобы с этим что-то сделать. Т.е.: на первой итерации, когда выполнение достигает функции results, мне нужно, чтобы функция удерживала результат отложенного объекта вместе со значением имени, когда i=0, затем, когда i=1, отложенный объект будет передан со значением имени, и так далее. Таким образом, мне нужно, чтобы каждый раз результат отложенного объекта при вызове с переменной name был вместе с переменной name. Когда я пытаюсь напрямую использовать значение nameinside results(), оно всегда сохраняет значение последней итерации, что рационально, так как функция function_which_returns_a defer(name) не вернулась.

9
задан curious 25 October 2011 в 14:50
поделиться