标签:重点 main 开始 name rabl input xtend bsp please
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
标签:重点 main 开始 name rabl input xtend bsp please
原文地址:https://www.cnblogs.com/ruike/p/10262214.html