生成器 迭代器

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赋值

 

posted @ 2021-07-01 11:03    阅读(30)  评论(0编辑  收藏  举报