當生成器函數中含有return時,return不會返回任何值,會直接終止當前生成器,對yield的作用沒有影響,當函數執行到return時候,調用next()來執行生成器則會報錯,如果使用for循環遍歷,for循環會自動捕獲該異常,直接停止遍歷
def func(): for i in range(10): i += 1 yield i # print(i) return i f = func() for i in f: print(i) f = func() next(f) # f.send(2) next(f) next(f) next(f)
