结合网上教学内容,指向yield就是迭代器,如果对yield并理解,大家暂且可以把yield理解成“return”,其使用方法与return大致相同,但
含义有区别:
参考代码:
def g():
print('A')
yield 1
print('B')
yield 2
print('C')
for i in g():
print(i)
运行结果:
A
1
B
2
C
总结分析:
for i in g()执行g()
-->print('A')打印A
-->yield 1返回值1并保存工作状态,这里i=1
-->print(i)打印1
-->继续for i in g()执行g(),自yield 1保存的工作状态下恢复继续执行print('B'),打印B
-->yield 2返回值2并保存工作状态,这里i=2
-->print(i)打印2
-->继续for i in g()执行g(),自yield 2保存的工作状态下恢复继续执行print('C'),打印C
-->没有yield返回值,因此for操作接受不到值,停止操作
看以上内容你可能就明白
yield
和
return
的关系和区别了,带yield的函数是一个生成器,而不是一个函数了,这个生成器有一个函数就是
next函数
,next就相当于“下一步”生成哪个数,这一次的next开始的地方是接着上一次的next停止的地方执行的,所以调用next的时候,只是接着上一步停止的地方开始,然后遇到
yield
后,
return
出要生成的数,此步就结束。
相信大部分小伙伴已经弄明白了吧,大家可以根据以上操作,自己尝试看看呢~如需了解更多python实用知识,点击进入
。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python转码%5b代表什么?10/19
- ♥ linux下如何查看python包09/06
- ♥ 如何检查jupyter中的python环境?09/14
- ♥ 什么是python unichr函数01/01
- ♥ java写的接口能不能调用python10/11
- ♥ 是python跨平台吗10/02
内容反馈