1 一、迭代器: 2 3 1.可迭代协议:含有__iter__方法。 4 2.迭代器协议:同时含有__iter__和__next__方法。迭代器是可迭代对象。 iterator迭代器。 5 3.使用可迭代对象有什么好处? -->只有是可迭代对象,才可以使用for循环。 6 4.怎样判断一个变量可以使用for循环? -->只要判断它是可迭代对象就可以。使用print(dir(变量)) 执行结果有 '__iter__' 或使用 7 print('__iter__' in dir(变量)) 执行结果是True。 8 5. print('__iter__' in dir(int)) 9 print('__iter__' in dir(bool)) 10 print('__iter__' in dir(list)) 11 print('__iter__' in dir(dict)) 12 print('__iter__' in dir(set)) 13 print('__iter__' in dir(tuple)) 14 print('__iter__' in dir(enumerate([]))) 15 print('__iter__' in dir(range(1))) 16 6.可迭代对象转化为迭代器的方法:可迭代对象.__iter__() 就可以得到一个迭代器。 17 7.迭代器中的__next__()方法可以一个一个取值,且值只能取一次,取完就没有了,取完最后一个,再执行next会报错。 18 8.迭代器的好处:1)可以从容器类型中一个一个取值,所有的值只能取一次。 19 2)节省内存空间,迭代器并不会在内存中占用一大块内存,而是随着循环,每次给我一个值。