您的位置:首页 > 编程语言 > Python开发

python之yield使用

2016-03-24 19:36 716 查看
生成器:生成器属于迭代器,通过next()方法取值,可以用于for循环,通过yield可以自定义生成器。

例:

>>> def test_yield(n):
... i = 0
... while i <n:
... yield i**2
... i+=1
...
>>> g1 = test_yield(10)
>>> g1
<generator object test_yield at 0x7f1eeaefbaa0> ########g1为生成器
>>> g1.next()
0 ##生成器通过next()方法取值,每次g1调用函数时,当遇到yield时,函数停止,再次执行next()函数时,取下一个值(i**2)
>>> g1.next()
1
>>> g1.next()
4
>>> g1.next()
9
>>> g1.next()
16
>>> g1.next()
25
>>> g1.next()
36
>>> g1.next()
49
>>> g1.next()
64
>>> g1.next()
81
>>> g1.next() ##########取值结束,抛出异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  yield