Python: 迭代器与生成器小结
迭代器与生成器的区别:
1. 迭代器由Class对象创建. 生成器由包含yield表达的Function对象或者Generator Expression创建.
2. 迭代器的原理:
(1)由Iterable.__iter__()返回Iterator.
(2)由Iterator.__next__()返回迭代值, 直到StopIteration.
一般迭代器同时实现__iter__()与__next__(), 在__iter__()返回self, 在__next__()返回迭代值,直到StopIteration
生成器原理:
(1)生成器都有next(), send(), close(), throw()
(2)调用next()/send(V)执行到下一个yield表达式,并返回yield表达式结果. 如果是send(V)将用V代替yield表达式的值往下执行, next()等价send(None)
(3)生成器不允许return任何值.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步