2015-07-20 60 views
3

根据几个在线的例子,为了运行装饰有同步代码tornado.gen.coroutine异步方法,您可以使用下列内容:龙卷风,运行协同程序方法与参数从同步代码

@tornado.gen.coroutine 
def do_something(): 
    do_something 

if __name__ == "__main__": 
    tornado.ioloop.IOLoop.instance().run_sync(do_something) 

然而如果你有协程方法的参数,是否有办法运行它?

回答

8

是:

@tornado.gen.coroutine 
def do_something(arg): 
    do_something 

if __name__ == "__main__": 
    tornado.ioloop.IOLoop.instance().run_sync(lambda: do_something(1)) 
1

使用部分:

import functools 
import tornado.gen 

@tornado.gen.coroutine 
def do_something(arg): 
    do_something 

if __name__ == "__main__": 
    tornado.ioloop.IOLoop.instance().run_sync(
     functools.partial(do_something, 1))