今天就跟大家聊聊有關(guān)Python中yield 關(guān)鍵詞有什么用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
十多年的薩爾圖網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整薩爾圖建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“薩爾圖網(wǎng)站設(shè)計(jì)”,“薩爾圖網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
當(dāng)您創(chuàng)建一個(gè)列表時(shí),你可以逐個(gè)讀取它的項(xiàng)。逐項(xiàng)讀取其項(xiàng)稱為迭代:
mylist是一個(gè)可迭代的對(duì)象。當(dāng)你使用列表解析式時(shí),你創(chuàng)建了一個(gè)列表,因此也是一個(gè)迭代器:
所有你可以用"for... in ...."都是迭代器,包括列表、字符串、文件…等等。
這些迭代器非常方便,因?yàn)槟憧梢噪S心所欲地讀取它們,但是你將所有的值都存儲(chǔ)在內(nèi)存中,當(dāng)你有很多值時(shí),這就非常浪費(fèi)內(nèi)存了。
為了解決這樣的問題,Python有了生成器的概念。
生成器是迭代器,這種迭代器只能迭代一次。生成器不會(huì)將所有值都存儲(chǔ)在內(nèi)存中,它們會(huì)動(dòng)態(tài)生成這些值:
它和列表解析式是類似的,只是用()代替了[]。但是,你不能在mygenerator中對(duì)i執(zhí)行第二次,因?yàn)樯善髦荒苁褂靡淮危核黳rint(0),然后忘記它,print(1),最后是4。
yield是一個(gè)與return類似的關(guān)鍵字,只是函數(shù)將返回一個(gè)生成器。
認(rèn)真看完下面這個(gè)例子,你應(yīng)該能完全明白。
函數(shù)將返回一組只需要讀取一次的值。如果你能將這個(gè)特性理解清楚,并將其應(yīng)用到你的代碼中,可能可以極大地提高性能,下次我們將介紹在什么時(shí)候該用它。
請(qǐng)注意示例中的第6行,在調(diào)用函數(shù)時(shí),在函數(shù)體中編寫的代碼不會(huì)運(yùn)行。函數(shù)只返回生成器對(duì)象,可別忘了這個(gè)重點(diǎn)。
最后,你的代碼將從每次使用生成器時(shí)停止的地方繼續(xù)。因此示例中第二次使用生成器的時(shí)候,我們的生成器已經(jīng)完全沒有值了。
所以最核心的邏輯如下:
1. for函數(shù)第一次調(diào)用從函數(shù)創(chuàng)建的生成器對(duì)象時(shí),它將從頭運(yùn)行函數(shù)中的代碼,直到達(dá)到y(tǒng)ield,返回循環(huán)的第一個(gè)值。
2. 隨后的調(diào)用都將再次運(yùn)行你在函數(shù)中編寫的循環(huán),并yield返回下一個(gè)值,直到?jīng)]有要返回的值為止
看完上述內(nèi)容,你們對(duì)Python中yield 關(guān)鍵詞有什么用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
新聞名稱:Python中yield關(guān)鍵詞有什么用
標(biāo)題來源:http://www.rwnh.cn/article10/gopjdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)站營(yíng)銷、動(dòng)態(tài)網(wǎng)站、小程序開發(fā)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)