美文网首页
python的迭代器

python的迭代器

作者: 原来不语 | 来源:发表于2019-01-20 23:20 被阅读0次

    什么是迭代器?
    迭代器是访问集合内元素的一种方式,一般用力啊遍历数据,迭代器和以下标的访问方式不一样,迭代器是不能返回的,迭代器提供了一种惰性方式数据的方式,迭代器不支持切片
    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
    

    相关文章

      网友评论

          本文标题:python的迭代器

          本文链接:https://www.haomeiwen.com/subject/xkkxjqtx.html