首页 > 代码库 > Python 迭代器和 生成器
Python 迭代器和 生成器
一直以为 Python 的生成器是指 列表生成, 好吧,我读书少。
其实呢,生成器是 使用yield 返回实现了迭代器协议的generator 对象。 如下:
class Data(object): def __init__(self, *args): self._data = list(args) def __iter__(self): for x in self._data: yield x d = Data(1,2,3) >>> d.__iter__() <generator object __iter__ at 0x7f8556d4cdc8>
在python2 中 使用d.next() 可以返回 d 的下一个值,
在 python3 中 需要使用 d.next() 返回 d 的生成器的下一个值, 生成器可用于 协程够造。
关于迭代器
根据迭代器协议, 需要实现iter() 和 next() 两个方法, 前者返回迭代器对象,后者返回数据,直到引发StopIteration 异常结束。
class Data(object): def __init__(self, *args): self.data = http://www.mamicode.com/list(args)>Python 迭代器和 生成器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。