原文地址 生成器本质上也是一个迭代器,我的一点理解的话,它也有点像只能执行一轮的单链表,通过 obj.__next__()就获得了当前指针(并不是真的指针)的指向值,同时将将指针指向一下个,过程不可逆,最后一个元素执行完之后这个生成器基本上就没法用了。 首先看一个普通函数 # 一个普通函数 def generator1(): print(1) return 'a' ret = generator1() print(ret) # 1 # a 一个生成器函数 def generator2(): print(1) yield 'a' # 有yield,这是一个生