生成器的扩展 ------ send() 方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成器的扩展 ------ send() 方法相关的知识,希望对你有一定的参考价值。
生成器的 send() 方法
g.send (‘A‘)
1 send 和 next 的工作的起止位置是完全相同的
2 send 可以把一个值作为 信号量 传递到函数中去
3 并且 在生成器开始 只能先使用next
4 send(‘a‘)改变上一次yield的内容 可以用yield 返回同一个改变的值来返回
# def fun(): # print(1) # yield 2 #888 # print(3) # value=yield 4 #value---None # print(6) # yield value # # g=fun() # print(g.__next__()) # print(g.send(888)) # print(g.__next__())
---------------------------生成器 预激 函数------------------------------- def wrapper(func): def inner(*args,**kwargs): re=func() re.__next__() return re return inner @wrapper def average_fun(): total=0 count=0 average=0 while True: value=yield average total+=value count+=1 average=total/count g=average_fun() print(g.send(30)) print(g.send(20)) print(g.send(20))
以上是关于生成器的扩展 ------ send() 方法的主要内容,如果未能解决你的问题,请参考以下文章
PYTHON学习0038:函数---生成器send方法---2019-7-2