首頁(yè)常見(jiàn)問(wèn)題正文

Python3中g(shù)enerator的next方法怎么用?

更新時(shí)間:2023-04-04 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  當(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異常。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!