tornado.ioloop.PeriodicCallback(callback, callback_time, io_loop=None)
函数说我不能为我的 callback
函数添加参数,但如果我确实需要用参数调用 callback
函数该怎么办?有什么解决办法吗?
是的,可以使用lambda或functools.partial。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()
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)