是的,使用lambda或functools.partial.部分功能的文档是
here.
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”表达式相同.
2460

被折叠的 条评论
为什么被折叠?



