加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

浅谈对yield的初步理解

发布时间:2020-12-17 08:23:01 所属栏目:Python 来源:网络整理
导读:如下所示: 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,则会报错

如下所示:

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的初步理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读