py04_05:迭代器

迭代器:只要是能被for循环的对象,且数据以公式表达。而不是列表,集合等。

 

迭代器的工作原理:

 

import time


#  利用斐波那契的原理写一个迭代器,斐波那契的公式:a, b = b ,a+b  (第一,二个数:0和1)
class Fibonacci(object):
    def __init__(self, all_count):
        self.count = 0  # 设置计数器。
        self.all_count = all_count  # all_count,用来指定迭代器总共迭代的次数,传参进来
        self.a = 0
        self.b = 1

    def __iter__(self):
        return self

    def __next__(self):
        if self.count < self.all_count:
            ret = self.a
            self.a, self.b = self.b, self.a + self.b
            time.sleep(1)
            self.count += 1
            return ret
        else:
            raise StopIteration


t = Fibonacci(10)

for i in t:
    print(i)

 

posted on 2020-03-28 19:57  yeyu1314  阅读(86)  评论(0编辑  收藏  举报