如下所示:
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,則會報錯StopIterationmy = 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為此段運行完返回的數據
以上這篇淺談對yield的初步理解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答