首先 yeild之前要充分理解生成器這個東西 ,通常的,一個數組或者一個list的循環很好理解,而在python中無論是什么對象都可以將其循環,
L = [x * x for x in range(5)] print(L)
上面這段代碼生成了一個list對象,它的輸出為
[0, 1, 4, 9, 16]
可以看到這是一個普通的list對象,然后使用python的生成器將其變成一個生成器對象(把中括號換成括號)
L = (x * x for x in range(5))
print(L)
#下面是輸出 <generator object <genexpr> at 0x000002C6DECDD048>
可以看出現在這個已經是一個生成器對象了,之后使用使用這個生成器去輸出里面的內容了
在我的理解里 ,yeild就是使用了生成器機制的語法,使用了yeild,這個函數就會變成可迭代對象,yeild就是返回每一次迭代的結果(相當於return),
值得注意是yield返回之后,再次循環進入之后,會從上次退出的地方進入