您的位置:首页 > 编程语言 > Python开发

Python 实现简单的迭代器

2014-12-25 11:20 190 查看
class AnyIter(object):
def __init__(self, data, safe=False):
self.safe = safe
self.iter = iter(data)

def __iter__(self):
return self

def next(self, howmany=1):
retval = []
for eachItem in range(howmany):
try:
retval.append(self.iter.next())
except StopIteration:
if self.safe:
break
else:
raise
return retval


In [91]: a = AnyIter(range(10), True)

In [92]:

In [92]: a
Out[92]: <__main__.AnyIter at 0x174a6b0>

In [93]: print a
<__main__.AnyIter object at 0x0174A6B0>

In [94]: i = iter(a)

In [95]: i
Out[95]: <__main__.AnyIter at 0x174a6b0>

In [96]: print i
<__main__.AnyIter object at 0x0174A6B0>

In [97]: i.next(14)
Out[97]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: