yield()返回参数函数使用

Posted ruike

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yield()返回参数函数使用相关的知识,希望对你有一定的参考价值。

1.带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代。

2.yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。可以减少内存占用!

3.简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。

4.带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允许迭代参数。比如array.extend函数,它的原型是array.extend(iterable)。

代码:

##函数,yield
def hello():
    name = input(Please input your name:)
    print(Welcome :%s%name)
    for i in range(8):
        #使用yield返回数值,保存当前的状态,不打断循环和函数
        #相当于此处中断一下,然后再次回到这里
        yield(i)
        print(hello:,i)
    print(函数内部)
        
#定义主函数
if __name__ == __main__:
    f = hello()
    for each in f:
        print(输出:,each)
    print(ending)

运行结果:

结果:
Please input your name:456
Welcome :456
输出: 0
hello: 0
输出: 1
hello: 1
输出: 2
hello: 2
输出: 3
hello: 3
输出: 4
hello: 4
输出: 5
hello: 5
输出: 6
hello: 6
输出: 7
hello: 7
函数内部
ending

 

以上是关于yield()返回参数函数使用的主要内容,如果未能解决你的问题,请参考以下文章

生成器函数进阶

Python中的yield和send

生成器yield

ruby yield 关键字用法实例

Python学习笔记(yield与装饰器)

生成器函数