一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

对yield的初步理解介绍

时间:2017-06-03 编辑:简简单单 来源:一聚教程网

如下所示:

 

 代码如下复制代码

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,则会报错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为此段运行完返回的数据

热门栏目