#__author__:Administrator}
#data: 2017/11/29
#生成器都是迭代器,迭代器不一定是生成器
#列表,元祖,字典,字符串都是(iterable)可迭代对象,通过iter()方法变成迭代器
from collections import Iterator,Iterable#Iterator(迭代器)Iterable#(可迭代对象)
l = [1,2,3,4,5]
# d = iter(l)
# print(l)
print(isinstance(l,list))
print(isinstance(l,Iterable))
print(isinstance(l,Iterator))
#什么事迭代器
#有iter()方法
#有next()方法
# print(next(d))
# print(next(d))
# print(next(d))
# print(next(d))
# print(next(d))
# print(next(d))
#for循环内做的三件事
# 1.调用可迭代对象的iter()方法,返回一个迭代器对象
# 2.不断调用迭代器的next方法
# 3.处理stopiteration(异常)
# for i in [1,2,3]:
# iter([1,2,3])
# from collections import Iterator,Iterable
#
# print(isinstance([1,2],Iterator))
# print(isinstance([1,2],Iterable))