23.迭代器与生成器

迭代器:

class powNum(object):
      value=0
      def __next__(self):#再有了这个函数才叫迭代器
          self.value+=1
          if self.value>10:
              raise StopIteration
          return self.value*self.value



      def __iter__(self):#有了这个函数叫可迭代对象
          return self

if __name__=="__main__":
    pow = powNum()
    print(pow.__next__())
    print(pow.__next__())
    print(pow.__next__())
    print(pow.__next__())
    print(pow.__next__())

生成器———特殊的迭代器

def f():
    yield 5
    yield 4
    yield 3

if __name__=='__main__':
    re=f()
    print(re.__next__())
    print(re.__next__())
    print(re.__next__())

你可能感兴趣的:(23.迭代器与生成器)