Generator最简单实现
generator可以理解为支持长度无限的iterator,迭代generator时,不需要所有的元素都在内存中,因此内存友好。
定义生成器的最简单方法是使用圆括号操作符:
# g是generator
g = (-i for i in range(0, 10, 1))
可使用next(g)遍历获取每一个 元素,next()是python3版本的g.next(),python3中generator的next()方法被替换为__next()__。使用next()为手工遍历方式,需要自己handle StopIteration异常:
while True:
try:
print(next(g))
except StopIteration:
break
或者使用for自动遍历generator,无需手动handle异常:
for item in g:
print(item)
再对比一下生成器:
# i是迭代器
i = iter([-i for i in range(0, 10, 1)])
while True:
try:
print(next(i))
except StopIteration:
&nbs

本文介绍了Python中的生成器和协程概念。生成器是一种内存友好的迭代器,通过yield关键字实现。协程允许控制权在不同协程间转移,而半协程只能将控制权返回给调用者。通过生产者消费者模型,阐述了协程和半协程的区别,以及如何在Python中实现。
的理解&spm=1001.2101.3001.5002&articleId=82025174&d=1&t=3&u=e8f67145eef84c14ba73c7ffdd7526f7)
1804

被折叠的 条评论
为什么被折叠?



