python生成式的send()方法(詳解)
隨便在網(wǎng)上找了找,感覺(jué)都是講半天講不清楚,這里寫(xiě)一下。
def generator():
while True:
receive=yield 1
print('extra'+str(receive))
g=generator()
print(next(g))
print(g.send(111))
print(next(g))
輸出:
1 extra111 1 extraNone 1
為什么會(huì)這樣呢,點(diǎn)進(jìn)send就能看到一句話
send:Resumes the generator and "sends" a value that becomes the result of the current yield-expression.
就是說(shuō) 這里yield 1整體被視為一個(gè)表達(dá)式,你send的內(nèi)容會(huì)作為這個(gè)表達(dá)式的值,隨便你左邊用什么東西接收或者不接收,總之yield就是你send進(jìn)來(lái)的那個(gè)東西。這個(gè)表達(dá)式變成你send進(jìn)來(lái)后的東西后繼續(xù)執(zhí)行,再次遇到y(tǒng)ield,輸出yield后面跟著的表達(dá)式。
當(dāng)然通常使用的話都不會(huì)輸出一個(gè)常量,會(huì)輸出一個(gè)和接收到的東西相關(guān)的量,不然豈不是白白發(fā)送了。
以上這篇python生成式的send()方法(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python批量查找包含多個(gè)關(guān)鍵詞的PDF文件
Python爬蟲(chóng)抓取論壇關(guān)鍵字過(guò)程解析
python 含子圖的gif生成時(shí)內(nèi)存溢出的方法
Python GUI Tkinter簡(jiǎn)單實(shí)現(xiàn)個(gè)性簽名設(shè)計(jì)
python3.x編碼解碼unicode字符串的實(shí)現(xiàn)示例
Python自動(dòng)化運(yùn)維_文件內(nèi)容差異對(duì)比分析

