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
     
  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166340.html
Copyright © 2011-2022 走看看