没有合适的资源?快使用搜索试试~ 我知道了~
Python中Yield的基本用法
0 下载量 34 浏览量
2020-12-16
23:34:54
上传
评论
收藏 44KB PDF 举报
温馨提示
试读
2页
带有yield的函数在Python中被称之为generator(生成器),也就是说,当你调用这个函数的时候,函数内部的代码并不立即执行 ,这个函数只是返回一个生成器(Generator Iterator)。 def generator(): for i in range(10) : yield i*i gen = generator() print(gen) <generator> 1. 使用next方法迭代生成器 generator函数怎么调用呢?答案是next函数。 print("first iteration
资源推荐
资源详情
资源评论
Python中中Yield的基本用法的基本用法
带有yield的函数在Python中被称之为generator(生成器),也就是说,当你调用这个函数的时候,函数内部的代码并不立即执
行 ,这个函数只是返回一个生成器(Generator Iterator)。
def generator():
for i in range(10) :
yield i*i
gen = generator()
print(gen)
<generator object generator at 0x7ffaad115aa0>
1. 使用使用next方法迭代生成器方法迭代生成器
generator函数怎么调用呢?答案是next函数。
print("first iteration:")
print(next(gen))
print("second iteration:")
print(next(gen))
print("third iteration:")
print(next(gen))
print("fourth iteration:")
print(next(gen))
程序输出:
first iteration:
0
second iteration:
1
three iteration:
4
four iteration:
9
在函数第一次调用next(gen)函数时,generator函数从开始执行到yield,并返回yield之后的值。
在函数第二次调用next(gen)函数时,generator函数从上一次yield结束的地方继续运行,直至下一次执行到yield的地方,并返
回yield之后的值。依次类推。
2. 使用使用send()方法与生成器函数通信方法与生成器函数通信
def generator():
x = 1
while True:
y = (yield x)
x += y
gen = generator()
print("first iteration:")
print(next(gen))
print("send iteration:")
print(gen.send(10))
代码输出:
first iteration:
1
send iteration:
11
生成器(generator)函数用yield表达式将处理好的x发送给生成器(Generator)的调用者;然后生成器(generator)的调用者可以通
资源评论
weixin_38696922
- 粉丝: 3
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功