#我们知道的迭代器有两种:一种是调用方法直接返回的,
# 一种是可迭代对象通过执行iter方法得到的,
#迭代器有的好处是可以节省内存。
# for i in [1234]:
# print(i)
#校验是否可迭代,能被for循环的就是可迭代的
# from collections import Iterable
# l=[1,2,3,4]
# i=1234
# print(isinstance(l,Iterable))
# print(isinstance(i,Iterable))
# print()
# #查看存在不存在_iter_方法,存在的话就满足可迭代协议
# print(dir(l))
# print(dir(i))
#iter方法,生成迭代器:list_iterator,迭代器比可迭代的协议增加一个方法就是:_next_()
# l=[1,2,3,4]
# print(l.__iter__())
# print(dir(l))
# print(set(dir(l.__iter__()))-set(dir(l)))
#迭代器遵循迭代器协议:必须拥有__iter__方法和__next__方法
# l=[1,2,3,4]
# l1=l.__iter__()
# print(l1.__next__())
#
# print((range(4).__iter__()).__next__())
# print('_next_'in dir(range(4)))
from collections import Iterator
print(isinstance(range(10).__iter__(),Iterator))
转载于:https://www.cnblogs.com/lixiaoxuan/articles/8966367.html