首页 > 代码库 > 对yield的初步理解
对yield的初步理解
1 def go(): 2 while True: 3 data = http://www.mamicode.com/1"color: #008080"> 4 r = yield data # data是返回值,r是接收值 5 print("data", data) 6 print("A1", r) 7 data += 1 8 9 r = yield data 10 print("data",data) 11 r += r 12 print("A2", r) 13 data += 1 14 15 r = yield data 16 print("data",data) 17 print("A3", r) 18 # 运行时此后若找不到下一个yield,则会报错StopIteration 19 20 my = go() 21 print("my", my) 22 print("None", my.send(None)) 23 print(my.send("1")) 24 print(my.send("2")) 25 print(my.send("3"))
①my.send(None): 意思为启动协程,此步会返回第一个yield后面的data值。
②send一次,运行的代码是两个yield之间的代码,最后返回后一个yield后面的data值,若缺少后一个yield语句,则会报错“Stoplteration”
③r = yield data
r 为my.send(‘传入的数据‘) 传入的数据
data为此段运行完返回的数据
感谢大家的评论
对yield的初步理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。