国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python中yield返回生成器的詳細(xì)方法

Python中yield返回生成器的詳細(xì)方法

2022-02-24 00:01python學(xué)習(xí)者0 Python

這篇文章主要介紹了Python中的yield返回生成器,生成器是Python編程進(jìn)階中的重要知識點(diǎn),需要的朋友可以參考下,希望能夠給你帶來幫助

最簡單、直觀的認(rèn)識,將 yield 看做 return 對待,只是 return 返回一個值,而 yield 返回一個生成器。

要理解 yield 的作用,必須理解生成器是什么?

在理解生成器之前,必須先理解迭代器。

一、迭代器

逐項(xiàng)讀取列表,稱為迭代。

?
1
2
3
mylist = [1, 2, 3]
for i in mylist: # 可迭代對象
    print(i)

列表解析式同樣是一個迭代器。

?
1
2
3
4
5
6
7
8
mylist = [x*x for x in range(3)]
for i in mylist:
    print(i)
'''
0
1
4
'''

所有 for...in... 都是迭代器,包括列表、字符串、文件等等。

但是,迭代器所有的值都存儲在內(nèi)存中,十分浪費(fèi)內(nèi)存。

因此有了生成器的概念。

二、生成器

生成器是一種迭代器,這種迭代器只能迭代一次。

生成器不會一次性存儲所有的值,而是會動態(tài)的生成值。

?
1
2
3
mygenerator = (x*x for x in range(3))
for i in mygenerator:
    print(i)

生成器只可執(zhí)行一次,再次執(zhí)行時(shí)不會輸出任何東西。

三、yield

1.例子一

yield 類似于 return 關(guān)鍵字,只是函數(shù)將返回一個生成器。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 創(chuàng)建生成器
def createGenerator():
    mylist = range(10)
    for i in mylist:
        print(i) # 驗(yàn)證函數(shù)調(diào)用時(shí)并無執(zhí)行
        yield i*i
mygenerator = createGenerator()   
print(mygenerator)
# <generator object createGenerator at 0x0000029E88FDCA50>
# 使用生成器
for i in mygenerator:
    print(i)
# 再次執(zhí)行 返回為空 沒有值了

函數(shù)將返回一組只需要讀取一次的值,可以大大的提升代碼性能。

在調(diào)用函數(shù)時(shí),函數(shù)體中的代碼并不會執(zhí)行,函數(shù)只返回生成器對象。

代碼每次從使用生成器時(shí)停止的地方繼續(xù)。

2.例子二

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#Python學(xué)習(xí)交流群:531509025
# 學(xué)習(xí)另外一個例子
def foo():
    print("starting...")
    while True:
        res = yield 4 # 函數(shù)并不真正執(zhí)行
        print("res:", res)
g = foo() # 得到一個生成器對象
print(next(g)) # 真正執(zhí)行
print("*"*20)
print(next(g)) # 從上一次停止的地方繼續(xù)執(zhí)行
'''
starting...
4
********************
res: None
4
'''
print(g.send(7))

執(zhí)行 yield 之后,才會跳出 while 循環(huán)。

next 函數(shù)用于執(zhí)行下一步操作。

send 函數(shù)用于發(fā)送一個參數(shù)給生成器。且 send 方法中包含 next 方法。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://www.cnblogs.com/xxpythonxx/p/15463109.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 精品国产乱码久久久久久久软件 | 成人免费在线观看 | 欧美电影在线观看网站 | 人人爽人人爽人人片av | 午夜伦理电影 | 视频一区二区三区中文字幕 | 国产真实精品久久二三区 | 久久精品国产精品青草 | 国产福利视频 | 午夜天 | 欧美区在线| 免费黄色在线 | 精品国产一级毛片 | 免费av电影网站 | 日韩不卡一区二区三区 | 国产人妖在线 | 精品久久久久久久久久久 | 久久久精品日本 | 国产一区www | 成人福利电影 | 久热中文字幕 | 国产精品1 | 国产精品美女久久久久久久久久久 | 国产玖玖 | 亚洲精品一二三 | 8888色大全 | 日韩欧美国产精品 | 国产成人精品免高潮在线观看 | 欧美黄色一级片免费看 | 国产精品1区2区 | 精品视频三区 | 蜜桃成人在线 | 国产精品99久久免费观看 | 久久人爽 | 日韩不卡一区二区三区 | 日韩精品久久久久久 | 中文字幕不卡在线观看 | 国产精品久久九九 | 中文字幕在线一区二区三区 | 99热国产精品 | 快色视频在线观看 |