__iter__

  • 有__iter__方法的对象是可迭代对象(Iterable)
  • 可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)
  • 所有的Iterable均可以通过内置函数iter()来转变为Iterator  
class C:

    def __iter__(self):
        return iter('python')

obj = C()

for item in obj:  
    print(item) 

  

for循环工作流程:

  •   如果obj是迭代器,那么直接调用迭代器的next()进行遍历
  •   如果obj是可迭代对象,那么先执行obj下的__iter__方法,获取到迭代器,然后调用迭代器的next()方法进行遍历 (上面代码就是这种情况)
原文地址:https://www.cnblogs.com/dongmengze/p/9517804.html