知行编程网知行编程网  2022-11-13 08:30 知行编程网 隐藏边栏  3 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于带有yield的函数在Python中如何使用的相关知识,希望可以帮到处于编程学习途中的小伙伴

Python中如何使用带有yield的函数

函数中yield的作用与return类似,不同的是函数在yield返回结果后并不退出,而是每次遇到yield关键字时都返回对应的结果,并保留函数当前的运行状态,等待下次通话。如果一个函数需要在一个循环中多次执行一个动作,并且需要每次执行的结果,这种场景非常适合使用yield。

包含yield的函数变成了生成器,生成器也是迭代器,支持通过next方法获取下一个值。

yield基本使用:

def func():
    for i in range(0,3):
        yield i
 
f = func()
f.next()
f.next()

对于生成器,在调用函数next的时候,会得到生成器yield之后的表达式的值;

当最后一个循环执行完毕,yield语句结束时,生成器会抛出一个StopIteration异常;

除了 next 函数,生成器还支持 send 函数。此函数可以将参数传递给生成器。

def func(n):
    for i in range(0,n):
        val = yield i        
        print val
 
f = func(10)
f.next()
#f.send(None)
f.send(2)
f.send(10)
print f.next()

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享