久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > python生成器如何實(shí)現(xiàn)

        python生成器如何實(shí)現(xiàn)

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-11-10 12:22:13 1699590133

        python生成器實(shí)現(xiàn)方法:

        生成器和迭代器的功能非常相似,它也會提供__next__()方法,這意味著程序同樣可調(diào)用內(nèi)置的next()函數(shù)來獲取生成器的下一個值,也可使用for循環(huán)來遍歷生成器。

        生成器與迭代器的區(qū)別在于,迭代器通常是先定義一個迭代器類,然后通過創(chuàng)建實(shí)例來創(chuàng)建迭代器;而生成器則是先定義一個包含yield語句的函數(shù),然后通過調(diào)用該函數(shù)來創(chuàng)建生成器。

        生成器是一種非常優(yōu)秀的語法,Python使用生成器可以讓程序變得很優(yōu)雅。

        創(chuàng)建生成器

        創(chuàng)建生成器需要兩步操作:

        定義一個包含yield語句的函數(shù)。

        調(diào)用第1步創(chuàng)建的函數(shù)得到生成器。

        下面程序使用生成器來定義一個差值遞增的數(shù)列。程序先定義了一個包含yield語句的函數(shù):

        deftest(val,step):

        print("--------函數(shù)開始執(zhí)行------")

        cur=0

        #遍歷0~val

        foriinrange(val):

        #cur添加i*step

        cur+=i*step

        yieldcur

        生成器的方法

        當(dāng)生成器運(yùn)行起來之后,開發(fā)者還可以為生成器提供值,通過這種方式讓生成器與“外部程序”動態(tài)地交換數(shù)據(jù)。

        為了實(shí)現(xiàn)生成器與“外部程序”動態(tài)地交換數(shù)據(jù),需要借助于生成器的send()方法,該方法的功能與前面示例中所使用的next()函數(shù)的功能非常相似,它們都用于獲取生成器所生成的下一個值,并將生成器“凍結(jié)”在yield語句處;但send()方法可以接收一個參數(shù),該參數(shù)值會被發(fā)送給生成器函數(shù)。

        在生成器函數(shù)內(nèi)部,程序可通過yield表達(dá)式來獲取send()方法所發(fā)送的值,這意味著此時程序應(yīng)該使用一個變量來接收yield語句的值。如果程序依然使用next()函數(shù)來獲取生成器所生成的下一個值,那么yield語句返回None。

        對于上面詳細(xì)的描述,歸納起來就是兩句話:

        外部程序通過send()方法發(fā)送數(shù)據(jù)。

        生成器函數(shù)使用yield語句接收收據(jù)。

        以上內(nèi)容為大家介紹了python培訓(xùn)之生成器如何實(shí)現(xiàn),希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        库车县| 建始县| 靖边县| 武义县| 三门峡市| 金秀| 贵州省| 滁州市| 抚顺县| 武定县| 井冈山市| 突泉县| 邵阳市| 沙湾县| 雅江县| 耿马| 水富县| 山西省| 阿克| 五台县| 洛隆县| 仙桃市| 垣曲县| 麻城市| 乐亭县| 通榆县| 尉氏县| 扶绥县| 临湘市| 万源市| 通城县| 福海县| 威信县| 明光市| 鄂托克旗| 布拖县| 林州市| 兴业县| 宁陵县| 璧山县| 崇明县|