python之迭代器

看了小甲鱼的视频,对迭代器有一些了解,在斐波那契数列上犯了个小错误,导致半天都没转过弯,特此记录

迭代
迭代类似与循环每一次重复的过程就称为迭代的过程,而每一次迭代的结果将
作为下一次迭代的初始值,提供迭代方法的容器,称之为迭代器
序列,列表,元组,字符串可以称之为容器,每次一次从容器中拿出数据的过程
称之为迭代操作

迭代操作,BIF  
iter()
魔法方法__iter__() 返回自身
next()
__next__() 决定迭代的规则

 

#coding:utf-8

class Fibs:
    def __init__(self, n=10):
        self.a = 0
        self.b = 1
        self.n = n
    def __iter__(self):
        return self
    def __next__(self):
        self.a, self.b = self.b, self.a + self.b
        if self.a > self.n:
            raise StopIteration
        return self.a
#第一次a = 0 b = 1
#当运行到next魔法方法时先执行b的值给a,故a = 1 此时b = a+b =1
#第二次因赋值语句在前,a得到的是第一次运行时候a+b的值,所以a = 1      
fibs = Fibs()
for each in fibs:
  
        print(each)
   

 

END!

 

posted @ 2016-07-03 12:18  知_行  阅读(348)  评论(0编辑  收藏  举报