溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

通過實(shí)例簡單了解Python中yield的作用

發(fā)布時(shí)間:2020-10-18 10:11:59 來源:腳本之家 閱讀:139 作者:MrDoghead 欄目:開發(fā)技術(shù)

這篇文章主要介紹了通過實(shí)例簡單了解Python中yield的作用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

介紹

我們有時(shí)候會(huì)發(fā)現(xiàn)代碼中return的地方,有用yield的,難道他們一樣嗎?其實(shí),yield與return看起來很像,但實(shí)際上完全不同。

使用

def test():
  print("****start****")
  while 1:
    res = yield 1
    print("res:", res)
t = test() # 函數(shù)中有yield關(guān)鍵字,所以函數(shù)并不會(huì)真的執(zhí)行,而是先得到一個(gè)生成器t
print(next(t)) # next讓函數(shù)開始執(zhí)行,打印start,然后把1返回給next(t),并把1打印出來,這時(shí)res還沒賦值
print("*"*10) # 打印十個(gè)* 
print(next(t)) # 函數(shù)從res = yield開始執(zhí)行,但是1已經(jīng)被yield出去了,所以res實(shí)際上沒有值,就是None,然后while重新循環(huán),1被yield出去打印

# ****start****
# 1
# **********
# res:None
# 1

你繞出來了嗎?

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI