【1.45.1】yield 以及 send 的用法(函数式生成器)

def test():
    n=yield 1
    print (n)
    m=yield 2
    print (m)
    yield 3
a=test()

print(a.__next__())   #执行完停在 yield语句后面 1 后面 这里不能用send  没有人来接收send 的值  打印该语句结果为 1 
print(a.send("n1"))   #执行完停在 yield语句后面 2 后面 把n1 这个值 给第一个yield 然后再给 n 然后再打印 n 然后执行第二个 yield   打印该语句结果为 2 
print(a.send("m1"))   #执行完停在 yield语句后面 3 后面 把m1 这个值 给第二个yield 然后再给 m 然后再打印 m 然后执行第三个 yield   打印该语句结果为 3

 执行结果为:

1
n1
2
m1
3
posted @ 2016-04-02 15:07  科学小怪癖  阅读(86)  评论(0)    收藏  举报