1.可迭代对象:可直接用for循环的对象称作可迭代对象:Iterable

●集合数据类型:list tuple dict set str

●一类是generator:包括生成器和带yield的generator function

#可用isinstance()判断对象是否是一个可迭代对象(Iterable)
from collections import Iterable
print(isinstance([],Iterable))
print(isinstance({},Iterable))
print(isinstance("abc",Iterable))
print(isinstance( (x for x in range(10)) ,Iterable))
print(isinstance(100,Iterable))
#True
#True
#True
#True
#False
2.可以被next()方法调用,并不断返回下一个值的对象称为迭代器:Iterator       通常来说就是具有next方法,并且可以for循环
#可以用isinstance()判断是否是一个迭代器(Iterator)
from collections import Iterator
print(isinstance([],Iterator))
print(isinstance({},Iterator))
print(isinstance("abc",Iterator))
print(isinstance( (x for x in range(10)) ,Iterator))
#False
#False
#False
#True

3.生成器就是一个迭代器(Iterator),但list,dict,str是迭代对象(Iterable),而不是迭代器(Iterator),但可以用iter()函数将其变成迭代器(Iterator)

from collections import Iterator
print(isinstance(iter([]),Iterator))
print(isinstance(iter({}),Iterator))
print(isinstance(iter("abc"),Iterator))
# True
# True
# True