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
原文地址:https://www.cnblogs.com/uchiha/p/10262214.html