使用生成器创建新的迭代模式
一个函数中需要有一个 yield 语句即可将其转换为一个生成器。
def frange(start, stop, increment): x = start while x < stop: yield x x += increment for i in frange(0, 4, 2): print(i) # 0 2
一个生成器函数主要特征是它只会回应在迭代中使用到的 next 操作
def cutdata(n): print("start",n) while n > 0: yield n n-=1 print("Done") res=cutdata(3) next(res) next(res) next(res) """ start 3 Done Done """