簡體   English   中英

tornado PeriodicCallback:提供帶參數的回調?

[英]tornado PeriodicCallback: provide callback with arguments?

函數tornado.ioloop.PeriodicCallback(callback, callback_time, io_loop=None)說我無法為我的callback函數添加參數,但如果我真的需要用參數調用callback怎么辦? 有工作嗎?

是的,使用lambda或functools.partial。 部分功能的文檔在這里

from tornado import ioloop

def my_function(a, b):
    print a, b

x = 1
y = 2 

periodic_callback = PeriodicCallback(
    lambda: my_function(x, y),
    10)

ioloop.IOLoop.current().start()

在此示例中,如果更改x或y,則更改將反映在下一次調用“my_function”中。 另一方面,如果你“導入functools”並且:

periodic_callback = PeriodicCallback(
    functools.partial(my_function, x, y),
    10)

然后稍后更改為x和y的值將不會出現在“my_function”中。 最后,你可以這樣做:

def my_partial():
    my_function(x, y)

periodic_callback = PeriodicCallback(
    my_partial,
    10)

這與前面的“lambda”表達式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM