def cd(n):
while n>=0:
print("first n:"+str(n))
newn = yield n
print("second n:"+str(n))
print("fist newn:"+str(newn))
if newn is not None:
n = newn*2
else:
n-=1
print("second newn:"+str(newn))
y = cd(5)
for x in y:
print(x) #5 3 2 1
if x == 5:
while n>=0:
print("first n:"+str(n))
newn = yield n
print("second n:"+str(n))
print("fist newn:"+str(newn))
if newn is not None:
n = newn*2
else:
n-=1
print("second newn:"+str(newn))
y = cd(5)
for x in y:
print(x) #5 3 2 1
if x == 5:
y.send(2)
genertaor.send(value)
generator的send函数作用:恢复之前挂起的yield,并将参数value成为当前yield表达式的结果,send函数返回下一个yield的结果(相当于执行了一次next)
本文详细解析了Python中生成器的send方法的工作原理及使用方式。通过具体代码示例展示了如何利用send方法来实现数据的传递,以及如何在生成器函数内部处理这些数据。
473

被折叠的 条评论
为什么被折叠?



