python之迭代器

Posted 知_行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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!

 

以上是关于python之迭代器的主要内容,如果未能解决你的问题,请参考以下文章

python之装饰器生成器迭代器

python-之装饰器迭代器生成器

python的重重之器(生成器迭代器装饰器)

第五篇Python之迭代器与生成器

python之迭代器和生成器

Python三大器之迭代器