PHP前端开发

分享一篇关于yield的实例代码

百变鹏仔 23小时前 #Python
文章标签 实例

下面小编就为大家带来一篇浅谈对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,则会报错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为此段运行完返回的数据