此时的next()函数可以唤醒生成器,另外我们可以使用send()方法来唤醒生成器,同时传递一个值到生成器中。
def my_iterator(mylist): current = 0 while current < len(mylist): res = mylist[current] current += 1 i = yield res print(i) return '遍历完成' l = [0,1,2,3] F = my_iterator(l) while True: try: f.send('aaaa') except StopIteration as e: print("生成器返回值:%s"%e.value) break 生成器生成式在逻辑足够简单的时候,一个更快捷的创建生成器的方法: