如下所示:
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",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为此段运行完返回的数据
以上这篇浅谈对yield的初步理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。