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 接受外部参数
迭代器无元素,结束