7. 简单生成器函数,Pool 实现多进程程序,异常管理,浏览器版本帮助手册
本篇博客继续为你的 Python 技能树补充知识点。
生成器函数
何为生成器,它的关键是生成一个值,而不是返回一个值。
生成器的实现
在函数中使用 yield
替换 return
即可。
使用生成器的好处是,可以提供惰性计算,如果数据集特别大的情况下,可以提高效率。
生成器表达式在 python 中,可以使用像列表解析式一样的格式定义生成器,语法格式如下:
生成器表达式返回的是迭代,当请求元素时才会获取到元素具体值。
通过 Pool 函数实现多进程
Pool 实现多进程管理,可以忽略进程之间的交互。
上述代码分别使用了双进程和单进程进行测试,你也可以直接设置 Pool(1)
进行测试。
如果没有设置 Pool()
方法的参数,程序将默认使用系统所有可用的 CPU。
异常管理
在日常的代码编写过程中,调试 BUG 是最耗费时间与精力的地方。
之前的滚雪球相关博客中,我们已经知道通过 try-except
去捕获异常,除此之外,可以直接使用 raise
抛出异常。
代码格式如下:
如果想要将异常信息记录到一个文件中,使用 traceback
模块即可。
断言 assert 断言也是代码完整性检查的工具,当代码存在错误时,会抛出异常。
断言代码格式如下:
异常日志代码运行过程中的异常,可以使用 logging
模块进行记录。
如果不需要展示日志,只需要在代码开头加上 logging.disable(logging.CRITICAL)
,即可屏蔽所有日志输出。
日志级别如下所示:
DEBUG
:最低级别;INFO
:记录程序中的一般事件;WARNING
:警告信息;ERROR
:程序错误;CRITICAL
:致命错误。
如果希望将日志记录到文件,只需要修改 logging.basicConfig
方法中的参数 filename
,赋值指定文件即可。
python 帮助手册
在之前的博客中,咱们一直使用 dir
或者 help
查看某些函数或者对象的用法,其实从 Python 3.2 开始,可以使用 python -m pydoc -b
打开一本帮助手册(在浏览器展示)。
例如刚才用到 Pool,就可以在 http://localhost:1561/multiprocessing.html 查询到相关知识点。
写在后面
以上内容就是本文的全部内容。
更多精彩
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/6a29a9fa307bf1cd25c0daee9】。文章转载请联系作者。
评论