0
我寫了一段Python代碼片段。Python生成器 - 什麼都不產生或跳到下一個?
def all_but(n):
for i in range(10):
if i != n:
yield i
>>> list(all_but(5))
[0, 1, 2, 3, 4, 6, 7, 8, 9]
那麼,輸出是我的預期。但是我並不完全理解當i = 5時會發生什麼。發電機沒有產生什麼,或者它跳到下一個產生6?
它跳轉到循環的下一次迭代。在這個迭代中甚至不會碰到「yield」,因爲if條件導致錯誤。 –
@YaroslavAdmin啊。所以發電機將產出直到達到產量。那麼,我覺得我正在談論一個明顯的事實。 – 8090PZ
這是'if ='條件,當'n = 5'時跳過,所以當這種情況發生時,它會直接進入下一次迭代而不執行'yield i' –