python生成器generator用法实例分析

python生成器generator用法实例分析,第1张

概述本文实例讲述了python生成器generator用法。分享给大家供大家参考。具体如下:

本文实例讲述了python生成器generator用法。分享给大家供大家参考。具体如下:

使用yIEld,可以让函数生成一个结果序列,而不仅仅是一个值

例如:

def countdown(n):   print "counting down"   while n>0:     yIEld n #生成一个n值     n -=1 >>> c = countdown(5) >>> c.next() counting down 5 >>> c.next() 4 >>> c.next() 3 
@H_404_9@

next()调用生成器函数一直运行到下一条yIEld语句为止,此时next()将返回值传递给yIEld.而且函数将暂停中止执行。再次调用时next()时,函数将继续执行yIEld之后的语句。此过程持续执行到函数返回为止。

通常不会像上面那样手动调用next(),而是使用for循环,例如:

>>> for i in countdown(5): ...   print i ...   counting down 5 4 3 2 1 
@H_404_9@

next(),send()的返回值都是yIEld 后面的参数, send()跟next()的区别是send()是发送一个参数给(yIEld n)的表达式,作为其返回值给m,而next()是发送一个None给(yIEld n)表达式, 这里需要区分的是,一个是调用next(),send()时候的返回值,一个是(yIEld n)的返回值,两者是不一样的.看输出结果可以区分。

def h(n):   while n>0:     m = (yIEld n)     print "m is "+str(m)     n-=1     print "n is "+str(n) >>> p= h(5) >>> p.next() 5 >>> p.next() m is None n is 4 4 >>> p.send("test") m is test n is 3 3 
@H_404_9@

希望本文所述对大家的Python程序设计有所帮助。

总结

以上是内存溢出为你收集整理的python生成器generator用法实例分析全部内容,希望文章能够帮你解决python生成器generator用法实例分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1202750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存