最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

Python關(guān)鍵字yield的介紹

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:20:54
文檔

Python關(guān)鍵字yield的介紹

Python關(guān)鍵字yield的介紹:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python關(guān)鍵字yield的介紹,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。協(xié)程是Tornado中進(jìn)行異步I/O代碼開發(fā)的方法。協(xié)程使用了Python關(guān)鍵字yield將調(diào)用者掛起和恢復(fù)執(zhí)行。所以在學(xué)習(xí)協(xié)程之前,我們先熟悉
推薦度:
導(dǎo)讀Python關(guān)鍵字yield的介紹:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python關(guān)鍵字yield的介紹,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。協(xié)程是Tornado中進(jìn)行異步I/O代碼開發(fā)的方法。協(xié)程使用了Python關(guān)鍵字yield將調(diào)用者掛起和恢復(fù)執(zhí)行。所以在學(xué)習(xí)協(xié)程之前,我們先熟悉

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python關(guān)鍵字yield的介紹,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

協(xié)程是Tornado中進(jìn)行異步I/O代碼開發(fā)的方法。協(xié)程使用了Python關(guān)鍵字yield將調(diào)用者掛起和恢復(fù)執(zhí)行。所以在學(xué)習(xí)協(xié)程之前,我們先熟悉一下yield的概念和使用方法,而要想理解yield,需要先理解迭代器的概念。

在Python種,使用yield 關(guān)鍵字定義的迭代器也被稱為【生成器】

1、迭代器

迭代器(Iterator)是訪問集合內(nèi)元素的一種方式。迭代器對(duì)象從集合的第1個(gè)元素開始訪問,直到所有元素都被訪問一遍后結(jié)束。迭代器不能后退,只能前進(jìn)迭代。

Python種最常用迭代器的場(chǎng)景是循環(huán)語(yǔ)句for,它用迭代器封裝集合,并且煮個(gè)訪問集合元素以執(zhí)行循環(huán)。

例如:

for number in range(5):#range返回一個(gè)列表
 print(number)

其中的range()返回一個(gè)包含所指定元素的集合,而for語(yǔ)句將其封裝成一個(gè)迭代器后訪問,使用iter()可以講列表、集合轉(zhuǎn)換成迭代器,例如:

numbers=[1,2,3,4,5]
#t就是迭代器
t=iter(numbers)
#打印t對(duì)象,以便查看其類型
print(t)

返回結(jié)果:

<list_iterator object at 0x10e805748>

迭代器與普通Python對(duì)象相比,多了一個(gè)__next__()方法,每次調(diào)用該方法可以返回一個(gè)元素,調(diào)用者(例如for語(yǔ)句)可以通過不斷調(diào)用__next__()方法來煮個(gè)訪問集合元素。

例如:

numbers=[1,2,3,4,5]
#t就是迭代器
t=iter(numbers)
#打印t對(duì)象,以便查看其類型
print(t.__next__())
print(t.__next__())
print(t.__next__())
print(t.__next__())

返回結(jié)果:

1
2
3
4

調(diào)用者可以一直調(diào)用__next__()方法,直到返回StopIteration異常。

2、使用yield

迭代器在Python編程種的使用范圍很廣,那么開發(fā)者如何定制自己的迭代器呢?

答案是使用yield關(guān)鍵字。

調(diào)用任何定義包含yield關(guān)鍵字的函數(shù)都不會(huì)執(zhí)行該函數(shù),而是會(huì)獲得一個(gè)隊(duì)?wèi)?yīng)于該函數(shù)的迭代器。

實(shí)例:

import time
def demoIternator():
 print("---1---")
 yield 1
 print("---2---")
 yield 2
 print("---3---")
 yield 3
 print("---4---")

for x in demoIternator():
 print(x)
 time.sleep(1)

每次調(diào)用迭代器的__next__()方法,將執(zhí)行迭代器函數(shù),并返回yield的結(jié)果作為迭代返回元素。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Python關(guān)鍵字yield的介紹

Python關(guān)鍵字yield的介紹:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于Python關(guān)鍵字yield的介紹,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。協(xié)程是Tornado中進(jìn)行異步I/O代碼開發(fā)的方法。協(xié)程使用了Python關(guān)鍵字yield將調(diào)用者掛起和恢復(fù)執(zhí)行。所以在學(xué)習(xí)協(xié)程之前,我們先熟悉
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top