Python 中的生成器与协程深入解析
1. 生成器概述
生成器表达式实际上也是一种推导式,它将更高级的生成器语法压缩到了一行代码中。虽然生成器语法看起来不太符合面向对象的风格,但它其实是创建某种对象的简单语法捷径。
以处理日志文件为例,若要从输出文件中删除 WARNING 列(因为文件中仅包含警告信息,该列冗余),有多种实现方式,不同方式的可读性也有所不同。
1.1 生成器表达式实现
import sys
inname, outname = sys.argv[1:3]
with open(inname) as infile:
with open(outname, "w") as outfile:
warnings = (l.replace('\tWARNING', '')
for l in infile if 'WARNING' in l)
for l in warnings:
outfile.write(l)
这种方式可读性良好,但不建议让表达式过于复杂。
1.2 普通 for 循环实现
import sys
inname, outname = sys.argv[1:3]
with open(inname) as infile:
with open(outname, "w") as outfile:
超级会员免费看
订阅专栏 解锁全文
724

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



