在python中,容器有迭代概念。迭代器具有两个不同的功能。使用这些功能,我们可以使用用户定义的类来支持迭代。这些函数是__iter __()和__next __()。
__iter __()方法返回迭代器对象。如果一个类支持不同类型的迭代,则可以使用其他一些方法来执行其他一些任务。
__next __()方法返回容器中的下一个元素。项目完成后,将引发StopIteration异常。
class PowerIter: #It will return x ^ x where x is in range 1 to max def __init__(self, max = 0): self.max = max #Set the max limit of the iterator def __iter__(self): self.term = 0 return self def __next__(self): if self.term <= self.max: element = self.term ** self.term self.term += 1 return element else: raise StopIteration #When it exceeds the max, return exception powIterObj = PowerIter(10) powIter = iter(powIterObj) for i in range(10): print(next(powIter))
输出结果
1 1 4 27 256 3125 46656 823543 16777216 387420489