如何给ioloop.run_sync()中调用的函数传入参数
问题
如何给tornado.ioloop.IOLoop中的run_sync方法中调用的函数添加参数
解决方案
使用functools.partial
解决示例
from tornado import gen
from tornado.ioloop import IOLoop
@gen.coroutine
def func():
print('this is the %(name)s'%{'name': func.__name__})
yield gen.sleep(6.0)
print('%(num)d'%{'num': 10})
@gen.coroutine
def foo():
print('this is the %(name)s'%{'name': foo.__name__})
yield gen.sleep(1.5)
print('%(num)d'%{'num': 5})
@gen.coroutine
def call():
yield gen.sleep(0)
print('this is the callback')
@gen.coroutine
def main(ioloop):
ioloop.call_later(5, call)
yield [func(), foo()]
if __name__ == '__main__':
from functools import partial
ioloop = IOLoop.current()
main = partial(main, ioloop=ioloop)
ioloop.run_sync(main)
总结
利用functools.partial就可以把原本需要带参数调用的函数变成不需要带参数就可以调用,在python核心编程中称之为偏函数。
---------------------
作者:Easy_to_python
来源:CSDN
原文:https://blog.csdn.net/hjhmpl123/article/details/53641121
版权声明:本文为博主原创文章,转载请附上博文链接!
最新文章
- 利用HAProxy代理SQL Server的AlwaysOn辅助副本
- 《转载》myeclipse 上安装 Maven3
- codevs1048 石子合并
- 推荐15款响应式的 jQuery Lightbox 插件
- ireport制作小技巧<;Reproduce>;
- Android基础总结(二)
- [SAP ABAP开发技术总结]ABAP调优——Open SQL优化
- 开启flask调试
- JDBC第一天
- Axure一点
- Oracle 安装 检查操作系统版本 必须是 5.0 5.1 的解决办法
- 【转】Eclipse中一键调用javah生成jni的头文件
- 将ArrayList<;HashMap<;String, String>;>;转为ArrayList<;Bundle>;类型的解决方案
- JS跨域请求 JSONP B/S全代码
- 给php加速安装APC
- yii2 源码分析 object类分析 (一)
- ajax的嵌套需要注意的问题
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) E. DNA Evolution 树状数组
- springboot打war包后部署到tomcat后访问返回404错误
- MyBatis:一对多关联查询