Python中的迭代器函数

说明

Iterator是python中的一个实现迭代协议的对象。元组,列表,集合在Python中称为内置迭代器。迭代协议中有两种方法。

__iter __():当我们初始化迭代器时,将调用此方法,并且此方法必须返回一个由next()__next __()(在Python 3中)方法组成的对象。

next()或__next __()(在Python 3中):此方法应返回迭代序列中的下一个元素。当迭代器与for循环一起使用时,for循环直接next()在迭代器对象上调用。

范例程式码

# creating a custom iterator
class Pow_of_Two:
def __init__(self, max = 0):
   self.max = max
   def __iter__(self):
      self.n = 0
      return self
      def __next__(self):
         if self.n <= self.max:
         result = 2 ** self.n
      self.n += 1
      return result
   else:
      raise StopIteration("Message")
      a = Pow_of_Two(4)
      i = iter(a)
print(i.__next__())
print(next(i))
print(next(i))
print(next(i))
print(next(i))
print(next(i))

输出结果

1
2
4
8
16
StopIteration error will be raised