生成器是一个特殊的迭代器
# #查看目标是否可迭代
# from collections import Iterable
#
# print(isinstance([],Iterable))
如果想要一个对象成为一个可以迭代的对象,那么必须实现__iter__方法
迭代器的优点:迭代器能实现for,能取里边的数据,但它里边存的不是生成这个序列的结果,而是生成这个序列的方式,占用空间极小,这就是迭代器的优点
列表、元组、字典、集合、字符串都是可迭代的
一个类中有__iter__就可以迭代,既有__iter__、又有__next__就可以称为迭代器
1、判断xxx_obj是否是可以迭代
看对象的类中是否有__iter__方法
2、在第一步成立的前提下,调用iter函数,得到xxx_obj的返回值
调用iter函数会自动调用__iter__方法
3、__iter__方法的返回值就是一个迭代器
for循环会自动调用迭代器的__next__方法,调一次取一个赋给temp