分享一個關於yield的實例程式碼

零下一度
發布: 2017-06-01 09:05:49
原創
1309 人瀏覽過

下面小編就為大家帶來一篇淺談對yield的初步理解。小編覺得蠻不錯的,現在就分享給大家,也給大家做個參考。一起跟著小編過來看看吧

如下:

#
def go():
  while True:
    data = 1
    r = yield data # data是返回值,r是接收值
    print("data", data)
    print("A1", r)
    data += 1

    r = yield data
    print("data",data)
    r += r
    print("A2", r)
    data += 1

    r = yield data
    print("data",data)
    print("A3", r)
    # 运行时此后若找不到下一个yield,则会报错StopIteration

my = go()
print("my", my)
print("None", my.send(None))
print(my.send("1"))
print(my.send("2"))
print(my.send("3"))
登入後複製

①my.send(None): 意思為啟動協程,此步會傳回第一個yield後面的data值。

②send一次,運行的程式碼是兩個yield之間的程式碼,最後返回後一個yield後面的data值,若缺少後一個yield語句,則會報錯「Stoplteration」

③r = yield data

   r 為my.send('傳入的資料') 傳入的資料

   data為此段運行完回傳的資料

【相關推薦】

1. Python中yield用法詳細說明

#2. 解析python中and與or用法

3. 詳解python之yield與Generator實例程式碼

4. 

#################################################4. #### Python中關於yield的使用方法介紹#######

以上是分享一個關於yield的實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板