python 之生成器的介绍
# 用生成器(generators)方便地写惰性运算
1 def double_numbers(iterable): 2 for i in iterable: 3 yield i + i
# 生成器只有在需要时才计算下一个值。它们每一次循环只生成一个值,而不是把所有的
# 值全部算好。
# range的返回值也是一个生成器,不然一个1到900000000的列表会花很多时间和内存。
# 如果你想用一个Python的关键字当作变量名,可以加一个下划线来区分。
range_num = range(1, 900000000)
# 当找到一个 >=30 的结果就会停
# 这意味着 `double_numbers` 不会生成大于30的数。
1 for i in double_numbers(range_num): 2 print(i) 3 if i >= 30: 4 break