可迭代对象:可听过调用__iter__方法,转化成有next() 方法的对象称为可迭代对象
迭代器:可通过next()方法调用,最后会抛出stopIteration异常的对象
生成器:1.列表生成器:列表解析[]变成()就是生成器表达式 eg:g = (x*x for x in range(10))
2.函数生成器:带yield
3.生成器只能用一次
生成器调用方式:__next__(),next(),send()
#send()调用函数生成器例子 def test(): print('开始啦!!!') first = yield 1 print('第一次',first) yield 2 print('第二次') t = test() res = t.__next__() #相当于next(t) print(res) t.send(None) #将None传递给yield再赋值给first 输出结果如下: 开始啦!!! 1 第一次 None