python值迭代器:

Python迭代器通过存储生成数据的方式而非结果来节省内存。具备iter()和next()方法,是可迭代对象的一种。可以使用isinstance()判断一个对象是否为可迭代对象。文章提供了非迭代器和迭代器的示例。
摘要由CSDN通过智能技术生成

优点:迭代器存储的是生成数据的方式(可以迭代的对象),并不是存储结果,很有效的减少内存的使用。

注意:可以迭代的对象不一定是迭代器,但是迭代器一定可以迭代。

          迭代器一定含有iter()和next()方法

         判断是否可迭代:isinstance([100, 1, 2], Iterable),返回True是迭代否则不是

eg.示例1,不是迭代器的迭代:

from collections import Iterable

# Classmate含有iter可以迭代,但不是迭代器
class Classmate(object):
    def __init__(self):
        self.names = list()

    def __add__(self, name):
        self.names.append(name)

    # 当对象可以进行迭代循环时,必须要含有iter方法并进行循环。
    def __iter__(self):
        return ClassIterable(self)

class ClassIterable(object):
    def __init__(self, obj):
        self.obj = obj
        # 定义全局变量,初始化之后,值在程序执行过程中发生变化了,也会保存变化的最终值
        self.current_num = 0;

    def __iter__(self):
        self.__iter__();

    def __next__(self):
        if self.current_num < len(self.obj.names):
            ret &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值