#迭代器 #我们已经知道,可以直接作用于for 循环的数据类型: #list,tuple,dict,set,str等; #generator,包括生成器和yield的generator function。 #这些可以直接作用于for循环的对象统称为可迭代(Iterable)对象(可循环的对象),Iterable。 #可以使用isinstance来判断是都是可迭代对象 #***可以被next()函数调用并不断返回值的对象称为迭代器:Iterator #可以使用isinstance来判断是都是Iterable对象 #from collections import Iterable #print(isinstance(100,Iterable)) #a=[1,2,3] #print(dir(a)) #输出a所有的可调用方式 from collections import Iterator #print(isinstance(( x for x in range(5)),Iterator))

#可迭代对象变成迭代器 a=[1,2,3] iter(a) b=iter(a) print(b.next()) print(isinstance(iter(a),Iterator))

#总结: #1、 凡是可作用与for循环的对象就是可迭代对象(Iterable类型) #2、凡是可作用__next__()函数的对象都是迭代器对象(Iterator类型)