可迭代对象补充

可迭代对象补充

  • 表象:可以被for循环的对象就可以称为可迭代对象:x,[1,2,3]、{},但是list是一个类不是一个可迭代对象

  • 在类中实现_ _iter _ _方法且返回一个迭代器(生成器)

    class Foo:
        def __iter__(self):
            return iter([1,2,3,4]) #只是返回了一个可迭代的函数,并没有把其完全展现出来
    
    obj = Foo()
    
    class Foo:
        def __iter__(self):
            yield 1
            yield 2
            yield 3
    obj = Foo()
    for i in obj:#一循环便执行,拿到yield的每一个返回值
        print(i)
    
    • 记住:只要能被for循环就去看他内部iter方法。
原文地址:https://www.cnblogs.com/yangzilaing/p/14102479.html