如下所示:
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)    # 運(yùn)行時(shí)此后若找不到下一個(gè)yield,則會(huì)報(bào)錯(cuò)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): 意思為啟動(dòng)協(xié)程,此步會(huì)返回第一個(gè)yield后面的data值。
②send一次,運(yùn)行的代碼是兩個(gè)yield之間的代碼,最后返回后一個(gè)yield后面的data值,若缺少后一個(gè)yield語句,則會(huì)報(bào)錯(cuò)“Stoplteration”
③r = yield data
r 為my.send('傳入的數(shù)據(jù)') 傳入的數(shù)據(jù)
data為此段運(yùn)行完返回的數(shù)據(jù)
以上這篇淺談對(duì)yield的初步理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選