zoukankan      html  css  js  c++  java
  • Python自定义迭代器对象

    自定义迭代器对象: 在类里面定义__iter____next__方法创建的对象就是迭代器对象
     
     

     iter()函数与next()函数

    1. iter函数: 获取可迭代对象的迭代器,会调用可迭代对象身上的__iter__方法
    2. next函数: 获取迭代器中下一个值,会调用迭代器对象身上的__next__方法
     
     

    for循环的本质

    遍历的是可迭代对象

    迭代器的作用就是是记录当前数据的位置以便获取下一个位置的值

     
    # 自定义迭代器对象: 在类里面定义__iter__和__next__方法创建的对象就是迭代器对象
    class MyIterator(object):
    
        def __init__(self, my_list):
            self.my_list = my_list
    
            # 记录当前获取数据的下标
            self.current_index = 0
    
            # 判断当前对象是否是迭代器
            result = isinstance(self, Iterator)
            print("MyIterator创建的对象是否是迭代器:", result)
    
        def __iter__(self):
            return self
    
        # 获取迭代器中下一个值
        def __next__(self):
            if self.current_index < len(self.my_list):
                self.current_index += 1
                return self.my_list[self.current_index - 1]
            else:
                # 数据取完了,需要抛出一个停止迭代的异常
                raise StopIteration
     
  • 相关阅读:
    字符串 高精度计算
    JAVA Socket编程 课堂作业
    图论 Floyd算法
    天梯赛题解 L1-049 天梯赛座位分配
    天梯赛题解 -L1-039 古风排版
    HDU 5558 后缀数组
    HDU 6194 后缀数组
    HDU 5769 后缀数组
    HDU 4691 后缀数组+RMQ
    HDU 4135 容斥原理
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166340.html
Copyright © 2011-2022 走看看