python 可迭代对象

作者: 我的轩辕 | 来源:发表于2017-06-26 21:19 被阅读205次
    • 可迭代对象
      是指实现了内置的iter方法的对象

    • 迭代器(iterator)
      那么什么迭代器呢?它是一个带状态的对象,他能在你调用 next() 方法的时候返回容器中的下一个值,任何实现了 next() (python2中实现 next() )方法的对象都是迭代器,至于它是如何实现的这并不重要。

    • 注意:一个对象既可以是迭代器也可以是可迭代对象
      实例:

      class Fib:
          def __init__(self):
            self.prev=0
            self.curr=1
      
        def __iter__(self):
            return self
        def __next__(self):
             value=self.curr
            self.curr+=self.prev
            self.prev=value
            return value
      

    也可以用生成器来实现

     class FloatRange:
           def __init__(self,start,end,step):
            self.start=start
            self.end=end
             self.step=step
        #正向迭代
        def __iter__(self):
            t=self.start
            while t<=self.end:
                yield t
                t+=self.step
         #反向迭代
        def __reversed__(self):
            t=self.end
            while t>=self.start:
                yield t
                t-=self.step
    

    相关文章

      网友评论

        本文标题:python 可迭代对象

        本文链接:https://www.haomeiwen.com/subject/gyojcxtx.html