有可能吗?我对Tornado(以及Python本身)很新,我认为我可以做类似的事情:
tornado.ioloop.IOLoop.instance().add_future(someFuture, lambda f: print f.result())
我只是语法错误。我认为函数定义和lambdas或多或少是等价的(都有类型function
)。这很好用:
def printFuture(f):
print f.result()
tornado.ioloop.IOLoop.instance().add_future(someFuture, printFuture)
我也可以在lambda中调用printFuture方法:
def printFuture(f):
print f.result()
tornado.ioloop.IOLoop.instance().add_future(someFuture, lambda f: printFuture(f))
有人能解释我为什么吗?
答案 0 :(得分:0)
在Python2中print
是一个声明。 lambda只能是一个表达式
您可以使用
from __future__ import print_function
获取print
然后只需添加(
和)
tornado.ioloop.IOLoop.instance().add_future(someFuture, lambda f: print(f.result()))