题目:实现一个迭代器类来返回从1到(n)的所有偶数。
定义迭代器
class myEven:
def __init__(self, n):
self.n = n
self.num = 2
def __iter__(self):
return self
def __next__(self):
if self.num <= self.n:
value = self.num
self.num += 2
return value
else:
raise StopIteration
调用
me = myEven(5)
print(next(me))
print(next(me))
print(next(me))
输出结果:
2
4
File "G:/PyCharmPoject/full-speed-python/exercise/iterators.py", line 61, in <module>
print(next(me))
File "G:/PyCharmPoject/full-speed-python/exercise/iterators.py", line 46, in __next__
raise StopIteration
StopIteration