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