python---迭代器

目录

一、迭代器概述

1,迭代

2,可迭代协议

3,迭代器协议

二、作用

三、关于迭代器的内容介绍

1.能被for循环的内容

2.dir可以获取数据类型的所有方法

3.__iter__的作用是返回一个迭代器

4.打印迭代器的方法

四.迭代器实例


一、迭代器概述

拥有__iter__方法和__next__方法的对象就是迭代器

1,迭代

迭代是访问集合元素的一种方式,可以将某个数据集内的数据‘一个挨着一个的取出来’,就叫做迭代。

2,可迭代协议

协议就是互相规定好的。可迭代协议的定义非常简单,就是内部实现了__iter__方法。

3,迭代器协议

必须拥有__iter__方法和__next__方法。


二、作用

节约内存,取得时候在生成数据,python2.7的时候range()方法就立刻生成了数据

占用了大量的内存空间。


三、关于迭代器的内容介绍

1.能被for循环的内容

2.dir可以获取数据类型的所有方法

3.__iter__的作用是返回一个迭代器

4.打印迭代器的方法


四.迭代器实例

我们先来分析一个实例

class Fibonacci(object):
    def __init__(self,all_num):
        self.num = all_num
        self.a = 1
        self.b = 1
        self.current_num =0
    def __iter__(self):
        return self    #返回自己,调用自己的魔法方法
    def __next__(self):
        if self.num <=2:
            self.current_num+=1
            if self.current_num == 3:
                raise StopIteration
            return self.a
        else:
            if self.current_num<self.num:
                ret = self.a
                self.a,self.b = self.b,self.a+self.b
                self.current_num+=1
                return ret
            else:
                raise StopIteration
for i in Fibonacci(40):
    print(i)

 

并不是全部都返回自己本身的,我们也可以返回其中的一个对象

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值