yield 复习

1.协程,微型进程:
    yield 生成器
        yield 会保存声明的变量,可以进行迭代
    使用 接收函数返回的对象.__next__()
        next(接收函数返回的对象)
    .send() 方法
        传递给函数中 yield 声明的对象
        x = yield i
        会发送给 x 变量
         如果一直没有使用 send() ,x 值一直为 None  
             赋值之后如果没有修改则 x 一直为 send 后的值
2.此时 x 的值为 None ,并没有将 i 赋值给 x
    x = yield i 

程序:
a = [1,2,3,4,5]
for i in a :
    print(i,end = " ")
print()

# 创建一个包含 yield 声明的函数
def test_yield():
    i = 0
    a = 4 
    while i < a:
        x = yield i 
        # print("x = ",x)
        # None
        print(x)
        # x 通过 gener 进行赋值
        i += 1


# 使用 .__next__() 查看迭代对象
gener = test_yield()
print(gener.__next__())
# 0
print(gener.__next__())
# 1
print(next(gener))
# 2
gener.send("x 通过 gener 进行赋值")
for i in test_yield():
    # i 在 test_yield 中 yield 声明的迭代对象中
    print(i,end = " ")

2020-04-12

原文地址:https://www.cnblogs.com/hany-postq473111315/p/12686330.html