python迭代器生成器进阶

def num():
    for i in range(1,4):
        print(i,"发送出去")
        try:
            a = yield i
            print(a,"接受外部参数")
        except Exception:
            print("接收错误并处理")


i = num()
nu = next(i)
print(nu,"接收迭代参数")
while True:
    try:
        if nu == 2:
            print("发送一个错误")
            i.throw(ValueError)
        print(nu,"发送回去")
        nu = i.send(nu)
        print(nu, "接收迭代参数")
    except StopIteration:
        print("迭代器无元素,结束")
        break

打印

1 发送出去
1 接收迭代参数
1 发送回去
1 接受外部参数
2 发送出去
2 接收迭代参数
发送一个错误
接收错误并处理
3 发送出去
2 发送回去
2 接受外部参数
迭代器无元素,结束
posted @ 2020-09-14 10:18  MartinV  阅读(111)  评论(0编辑  收藏  举报