日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python生成器的原理探究

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。

1、概念

生成器是通過使用yield語句而不是return語句定義一個普通函數(shù)來創(chuàng)建的。如果函數(shù)包含至少一個yield語句,它就成為一個生成器函數(shù)。yield和return都將從函數(shù)返回一些值。函數(shù)在執(zhí)行return時終止,而yield語句暫停函數(shù),保存它的所有狀態(tài),然后在后續(xù)調(diào)用時繼續(xù)執(zhí)行。

2、組成

至少有一個yield語句。

返回一個對象(迭代器),但不立即開始執(zhí)行。

記住連續(xù)調(diào)用之間的局部變量及其狀態(tài)。

實現(xiàn)迭代協(xié)議。

3、原理分析

下面是使用生成器的類似內(nèi)容??梢园l(fā)現(xiàn),調(diào)用__iter__()和__next__()都是由生成器自動處理的:

# Generator for next power of two.
def NextPowTwo(max_ele):
    n = 0
    while n < max_ele:
        yield 2 * n
        n += 1
    raise StopIteration
 
           
obj = NextPowTwo(20)
print (obj.next())
print (obj.next())
print (obj.next())
print (obj.next())

在對于python學習的時候,容易把生成器與別的知識點混淆,其實想要判斷有個最簡單的方法,看看是否使用yield函數(shù)就知道了。

以上就是python生成器的原理探究,相信現(xiàn)在已經(jīng)能夠通過yield來明確生成器的使用了。同時我們可以發(fā)現(xiàn),生成器在自動處理調(diào)用上是非常好用的。


本文標題:創(chuàng)新互聯(lián)Python教程:python生成器的原理探究
標題URL:http://www.5511xx.com/article/cdgjjds.html