本文共 514 字,大约阅读时间需要 1 分钟。
生成器在语法上是一个使用了yield的函数
先来一个例子:
def fibonacci(n): # 生成器函数 - 斐波那契 a, b, counter = 0, 1, 0 while True: if (counter > n): return yield a a, b = b, a + b counter += 1f = fibonacci(10) # f 是一个迭代器,由生成器返回生成if __name__ == '__main__': while True: try: print(next(f), end=" ") except StopIteration: break
生成器有俩特点:
直接调用生成器函数返回的是一个iterator, 相当于初始化了生成器
next(iterator) 将执行函数, 当执行到yield语句时, 将保存此时函数的执行现场, 而后返回yield的值, 下次调用next时, 函数将从中断处继续执行
转载地址:http://ibkb.baihongyu.com/