立即注册

从零开始,编程论坛

广告联系qq1031180668喜欢网购的小伙伴们看过来啦
查看: 488|回复: 1

[python] python3.x中的生成器generator调用next方法

[复制链接]
  • ta_mind

    2019-8-30 13:16
  • classn_01: 73 classn_02

    [LV.6]常住居民II

    1054

    主题

    1776

    帖子

    3672

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    3672

    最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

    发表于 2018-6-25 04:57:59 | 显示全部楼层 |阅读模式
    今天写了一段Python程序,用到了Python的generator。当我用到generator的next方法时,总是提醒我符号错误。:

    [Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    def fib(max):  
        n,a,b=0,0,1  
        while(n<max):  
            yield b  
            a,b=b,a+b  
            n+=1 
    g=fib(5)  
    g.next()  
    
    


    错误提示为:
    [Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    AttributeError: 'generator' object has no attribute 'next'
    

    上面的错误信息的大致意思是“generator”没有next属性。这是怎么回事儿呢? 于是,我登录Python官方网站上一看究竟。后来我才发现,前两天闲着没事儿,我把之前Python2.7更新到Python3.4,。而Python2.x与Python3.x在一些语法特性上有所不同。比如我上面的next方法调用错误。在Python3.x中要使用generator的next属性,必须要这么调用:
    [Python] syntaxhighlighter_viewsource syntaxhighlighter_copycode
    next(g) #和之前的g.next()不同  






    不积跬步,无以至千里

    classn_11

    0

    主题

    42

    帖子

    88

    积分

    注册会员

    Rank: 2

    积分
    88
    发表于 2018-7-5 12:32:12 | 显示全部楼层
    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    手机版|Archiver|小黑屋|sitemap| 从零开始,编程论坛 - 一个单纯的编程学习交流论坛 ( 豫ICP备15032706号 )

    GMT+8, 2019-10-16 16:02 , Processed in 1.137403 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表