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

  1. 带有 yield 的函数不再是一个普通函数,而是一个生成器generator,可用于迭代,工作原理同上。
  2. yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。重点是:下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行。
  3. 简要理解:yield就是 return 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后(下一行)开始。

代码示例:

#encoding:UTF-8  
def yield_test(n):  
    for i in range(n):  
        yield call(i)  
        print("i=",i)  
    #做一些其它的事情      
    print("do something.")      
    print("end.")  
  
def call(i):  
    return i*2  
  
#使用for循环  
for i in yield_test(5):  
    print(i,",")

 

相关文章:

  • 2022-02-13
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2021-12-21
  • 2021-10-19
  • 2021-07-29
  • 2021-10-19
猜你喜欢
  • 2021-04-18
  • 2021-09-01
  • 2021-08-30
  • 2021-05-26
  • 2022-12-23
  • 2021-10-02
  • 2022-12-23
相关资源
相似解决方案