<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  python生成器如何實現(xiàn)

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

    來源:千鋒教育
    發(fā)布人:xqq
    時間: 2023-11-06 20:19:13

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

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

    生成器與迭代器的區(qū)別在于,迭代器通常是先定義一個迭代器類,然后通過創(chuàng)建實例來創(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

    生成器的方法

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

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

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

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

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

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

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

    聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

    猜你喜歡LIKE

    python實現(xiàn)WSGI的框架

    2023-11-13

    python打開文本文件有哪些方法?

    2023-11-13

    python使用loguru操作日志

    2023-11-13

    最新文章NEW

    python-=是什么意思

    2023-11-13

    pythonre是什么?

    2023-11-13

    python列表追加元素出錯的解決

    2023-11-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網(wǎng)友熱搜 更多>>