更新時(shí)間:2023-04-04 來(lái)源:黑馬程序員 瀏覽量:
當(dāng)我們定義了一個(gè)生成器函數(shù)時(shí),它會(huì)返回一個(gè)迭代器對(duì)象,可以通過(guò)調(diào)用next()方法逐個(gè)地獲取該生成器函數(shù)中生成的值。下面是一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明next()方法的使用:
def my_generator(): yield 1 yield 2 yield 3 # 創(chuàng)建一個(gè)迭代器對(duì)象 gen = my_generator() # 調(diào)用 next() 方法逐個(gè)獲取生成器函數(shù)中生成的值 print(next(gen)) # 輸出 1 print(next(gen)) # 輸出 2 print(next(gen)) # 輸出 3 # 如果繼續(xù)調(diào)用 next() 方法,將會(huì)拋出 StopIteration 異常,表示已經(jīng)沒(méi)有更多的值可以迭代了 print(next(gen)) # 拋出 StopIteration 異常
在這個(gè)例子中,my_generator()是一個(gè)生成器函數(shù),它使用yield關(guān)鍵字生成了三個(gè)值。然后,我們使用my_generator()函數(shù)創(chuàng)建了一個(gè)迭代器對(duì)象gen,并通過(guò)調(diào)用next()方法獲取了這個(gè)生成器函數(shù)中生成的每個(gè)值。注意,當(dāng)沒(méi)有更多的值可迭代時(shí),再次調(diào)用next()方法將會(huì)拋出StopIteration異常。