RPA学习——Python生成器函数进阶

324 篇文章 27 订阅
136 篇文章 1 订阅

艺赛旗 RPA9.0全新首发免费下载 点击下载
http://www.i-search.com.cn/index.html?from=line1

next 与 send

def generator():
print(123)
yield 1
print(456)
yield 2

g = generator()
ret = g.next()
print(’***‘ret)
ret = g.send(None) #send 效果和 next一样
print(’***'ret)
归纳:

1.send 获取下一个值得效果和 next 基本一致
2. 只是在获取下一个值得时候,给上一个 yield 的位置传一个参数

使用 send 的注意事项

  1. 第一次使用生成器的时候,必须使用 next 获取一个值
  2. 最后一个 yield 不能接受外部的值

获取移动平均值:

def average()
sum = 0
count = 0
avg = 0
while 1:
num = yield avg
sum += num
count += 1
avg = sum / count

avg_g = average()
avg_g.next()
avg1 = avg_g.send(10)
print(avg1)

预激生成器的装饰器

def init(func):
def inner(*args, **kwargs):
ret = func(*args, **kwargs)
g.next()
return g

return inner

@init
def average():
sum = 0
count = 0
avg = 0
while 1:
num = yield avg
sum += num
count += 1
avg = sum / count

g = average()
avg1 = g.send(10)
print(avg1)

python3.X—–>yield from
原方法

def generator():
a = ‘123’
b = ‘abc’
for i in a:
yield i
for i in b:
yield i

g = generator()
for i in g:
print(i)
yield from 方法:

def generator():
a = ‘123’
b = ‘abc’
yield from a
yield from b

g = generator()
for i in g:
print(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值