如何从Twisted中推迟将参数添加到addTimeout函数

时间:2018-07-26 19:05:31

标签: python twisted

我在deferred.addTimeout中有一些问题。我想以与将参数传递给deferred.addCallback相同的方式将一些参数传递给此函数,但是我不能。 可能有助于Twisted库中的更改吗? 请帮帮我, 卢克

1 个答案:

答案 0 :(得分:0)

使用内置的partials将参数传递给函数。我假设您要在onTimeoutCancel中传递参数Deferred.addTimeout的功能?

from functools import partial
from twisted.internet import defer, task

def callback_timeout(failure, timeout, **kw):
    print('params: {0}'.format(kw))

@defer.inlineCallbacks
def main(reactor):
    d = defer.Deferred()
    # use partials to set params in a function
    fn_timeout = partial(callback_timeout, a=1, b='B', c=12)
    # pass new partial function into addTimeout
    p = d.addTimeout(5, reactor, fn_timeout)
    yield d

task.react(main)