python中的yield使用方法
更新时间:2014年02月11日 14:31:58 作者:
这篇文章主要介绍了python中的yield使用方法,需要的朋友可以参考下
今天在看其他同事的代码时,发现一个没使用过的python关键字 :yield
先问了一下同事,听他说了几句,有个模糊的印象,仅仅是模糊而已。于是自己去搜搜资料看。看了半天,逐渐清晰了。不过在工作机制以及应用上还是有点迷茫。嗯,先把初始接触的印象记下来吧。
yield 简单说来就是一个生成器(Generator)。生成器是这样一个函数:它记住上一次返回时在函数体中的位置。对生成器函数的第二次(或第 n 次)调用跳转至该函数中间,而上次调用的所有局部变量都保持不变。
你看到某个函数包含了yield,这意味着这个函数已经是一个Generator,它的执行会和其他普通的函数有很多不同。
可能看到这里还是迷迷糊糊,先看一些实例吧:
def test( data_list ):
for x in data_list:
yield x + 1
data = [1,2,3,4]
for y in test( data ):
print y
则输出结果为:
2 3 4 5
另外一种用法:
handle = test(data)
handle.next() 输出 2
handle.next() 输出 3
handle.next() 输出 4
handle.next() 输出 5
handle.next() 则会报错
这只是 yield 的初步印象,接下来慢慢摸索吧。
相关文章
Python数据库格式化输出文档的思路与方法
这篇文章主要给大家介绍了关于Python数据库格式化输出文档的思路与方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2021-03-03
Python中的for循环示例详解
Python中的for循环是一种迭代循环,可以迭代容器中的每一个元素,本文通过实例代码给大家介绍Python中的for循环,感兴趣的朋友跟随小编一起看看吧
2024-05-05
Python从入门到精通之类的使用详解
Python是一种功能强大且广泛使用的编程语言,它支持面向对象编程(OOP),本文将介绍Python中类的使用,包括类的创建、属性和方法的定义、继承和多态等关键技术点,希望对大家有所帮助
2023-07-07
基于Keras的扩展性使用
这篇文章主要介绍了Keras的扩展性使用操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2021-05-05
使用Python自制一个回收站清理器
经常笔记本电脑的回收站存储了很多的文件,需要打开回收站全部选中进行清理。这篇文章将使用Python自制一个回收站清理器,需要的可以参考一下
2023-03-03
Python中的自动化测试与质量保障详解
这篇文章主要介绍了Python在软件开发中自动化测试和质量保障的重要性,以及如何使用Python的测试框架如unittest和pytest进行测试,它还讨论了编写高效的测试用例、持续集成和持续部署(CI/CD)、测试驱动开发(TDD)的实践以及性能测试和代码覆盖率分析等
2025-01-01
最新评论