生成器的 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))
时间: 2024-10-03 22:56:12