yield异步编程:
def fun_inner():
i = 0
while True:
i = yield i
def fun_outer():
a = 0
b = 1
inner = fun_inner()
#在一个生成器函数未启动之前,是不能传递数值进去。必须先传递一个None进去或者调用一次next(g)方法,才能进行传值操作
inner.send(None)
while True:
a = inner.send(b)
b = yield a
if __name__ == '__main__':
outer = fun_outer()
#在一个生成器函数未启动之前,是不能传递数值进去。必须先传递一个None进去或者调用一次next(g)方法,才能进行传值操作
print(outer.send(None))
print(outer.send(0))
用yield from进行嵌套的简化:
def fun_inner():
i = 0
while True:
i = yield i
def fun_outer():
yield from fun_inner()
if __name__ == '__main__':
outer = fun_outer()
outer.send(None)
for i in range(5):
print(outer.send(i))