yield是一个iterator生成器,而iterator最重要的是next函数。
1. 包含yield的函数首先是一个生成器,调用它并不会执行函数里面的代码。如iterator = func_with_yield()
2. 调用iterator.next()才会调用func_with_yield函数里面的代码,到yield停止,并返回yield后面指定的元素。(想象成iterator)
3. 下一个iterator.next()会从上次yield停止的地方开始,重新开始运行。
示例代码
def foo(): print("starting...") while True: res = yield 4 print("res:",res) g = foo() print(next(g)) print("*"*20) print(next(g)) ———————————————— 版权声明:本文为CSDN博主「冯爽朗」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mieleizhi0522/article/details/82142856