生成器的另一种形式:表达式
g=foo()
next(g)
g.send(1)
send是传值的功能
send传值之后才有运行的过程
如果出现了g.send(none)相当于next(g)
需要做一个初始化的过程,也就是想send之前:
next(g)
g.send(2)
一个拥有装饰器的yield生成器
def zhuangshi(cent): def neiceng(): g=cent() next(g) return g return neiceng @zhuangshi def foo(): print('star') while True: x=yield print(x) # foo().send(2) g=foo() g.send(2)
这样我们就可以免去了在使用生成器表达式时先进行next()的环节