Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2012 15:59:25

Юрчек
От:
Зарегистрирован: 2009-04-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

twisted inlinecallbacks

Поясните как вызвать одну декорированную inlinecallbacks функцию из другой

from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks, returnValue, Deferred
 
@inlineCallbacks
def inline1():
    d = Deferred()
    reactor.callLater(1, d.callback, 1)
    result = yield d 
    print 'inline1', result
    result = inline2()
    print 'inline2', result
@inlineCallbacks
def inline2():
    d = Deferred()
    reactor.callLater(2, d.callback, 2)
    result = yield d
    returnValue(result)
reactor.callWhenRunning(inline1)
reactor.run()

Выводит почему-то
inline1 1
inline2 <Deferred at 0xb727d9ecL>



Офлайн

#2 Авг. 13, 2012 16:26:40

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

twisted inlinecallbacks

result = yield inline2()



Офлайн

#3 Авг. 13, 2012 16:53:50

Юрчек
От:
Зарегистрирован: 2009-04-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

twisted inlinecallbacks

Спасибо - это оно. Перечитал докстринг к Inlinecallbacks все стало на места. А то мне по невнимательности начало казаться, что inline2 возвращает d, Deferred созданный в ней локально.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version