表达式版本的生成器
生成器的另一种形式:表达式
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()的环节
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步