python的迭代器

什么是迭代器?
迭代器是访问集合内元素的一种方式,一般用力啊遍历数据,迭代器和以下标的访问方式不一样,迭代器是不能返回的,迭代器提供了一种惰性方式数据的方式,迭代器不支持切片
list 是一个可迭代对象,却不是迭代器。
自定义实现一个迭代器

from collections.abc import Iterator

class Company(object):
"""docstring for Company"""
def __init__(self, employee_list):
    self.employee = employee_list

def __iter__(self):
    return MyIterator(self.employee)
class MyIterator(Iterator):
def __init__(self, employee_list):
    self.iter_list = employee_list
    self.index = 0

def __next__(self):
    
    #真正返回迭代值的逻辑
    try:
        word = self.iter_list[self.index]
    except IndexError:
        raise StopIteration
    self.index += 1
    return word

if __name__ == '__main__':
company = Company(['tom', 'bob', 'jane'])
my_itor = iter(company)
while True:
    try:
        print(next(my_itor))
    except StopIteration:
        pass
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容