生成器对象支持迭代器协议。也就是说,它提供了一个next()方法(__next__()在Python 3.x中),用于逐步执行该__iter__方法,并且该方法返回自身。这意味着可以在支持通用可迭代对象的任何语言构造中使用生成器。
# Python2.xxrange()的幼稚部分实现 def xrange(n): i = 0 while i < n: yield i i += 1 # 循环播放 for i in xrange(10): print(i) # 打印值0、1,...,9 # 开箱 a, b, c = xrange(3) # 0、1、2 # 建立清单 l = list(xrange(10)) # [0,1,...,9]