1.1迭代器:
首先可迭代对象=字符串 列表 元组对象 变成迭代器iter(列表) 然后迭代器,具有两个属性__iter__() 与 __next__()
# arr = [1,2,3] # print(next(iter(arr))) # 如果遍历完了还继续next 就会出现StopIteration异常
1.2自定义迭代器
# 然后被iter()的时候就会触发__iter__() # 然后在next()的时候就会触发__next__() class MyNum(): def __iter__(self): print("shabi ") return self def __next__(self): return "99" # myNum = MyNum() # iter(myNum) # next(myNum)
2生成器
# 生成器:用了yeild就是生成器 生成器就是迭代器 def fun(): n=0 while n<10: print("jinri") yield n = yield print(n) f = fun() next(f) #输出yield之前的输出 f.send(9)#给n = yield赋值