ÀÖÓãµç¾º

    ½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

    È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

    PythonÖеÄyield¹Ø¼ü×Ö×öÁËʲô

    ¸üÐÂʱ¼ä:2017Äê11ÔÂ30ÈÕ16ʱ57·Ö À´Ô´:ÀÖÓã²¥¿Í ä¯ÀÀ´ÎÊý:

    ÒªÀí½âyield×öÁËʲô£¬¾Í±ØÐëÃ÷°×Éú³ÉÆ÷(generators)ΪºÎÎ¶øÔÚÃ÷°×Éú³ÉÆ÷֮ǰ»¹ÒªÖªµÀµü´úÆ÷(iterables)¡£

    1. µü´úÆ÷

    µ±ÎÒÃÇ´´½¨Ò»¸ölistµÄʱºò£¬ÎÒÃÇ¿ÉÒÔÒ»¸ö½ÓÒ»¸öµÄ¶ÁÈ¡ËüµÄ³ÉÔ±¡£ÕâÖÖÒ»¸ö½ÓÒ»¸ö¶ÁÈ¡µÄÐÐΪ½Ð×öµü´ú£º

    mylist¾ÍÊÇÒ»¸öµü´úÆ÷¡£µ±ÎÒÃÇʹÓÃÁбíÍÆµ¼Ê½(Òà³ÆÁбíÉú³Éʽ£¬list comprehension)ʱ£¬ÎÒÃÇ´´½¨ÁËÒ»¸ölist£¬Í¬Ê±»¹ÓÐÒ»¸öµü´úÆ÷£º

    ÎÒÃÇ¿ÉÒÔʹÓÓ for … in …”µÄÈκÎÊÂÎï¶¼Êǵü´úÆ÷£¬È磺Áбí¡¢×Ö·û´®¡¢ÎļþµÈ¡£

    ÕâЩµü´úÆ÷ºÜ±ãÀû£¬ÎÒÃÇ¿ÉÒÔÏë¶ÁÈ¡¶àÉپͶÁÈ¡¶àÉÙ£¬µ«ÊÇÎÒÃÇÒªÔÚÄÚ´æÖд¢´æËùÓеĿÉȡֵ£¬È»¶øµ±ÎÒÃÇÓÐÌ«¶àµÄֵʱÎÒÃDz»×ÜÊÇÏ£ÍûÈç´Ë¡£

    2. Éú³ÉÆ÷

    Éú³ÉÆ÷(generators)Ò²Êǵü´úÆ÷£¬µ«ÊÇÎÒÃÇÖ»ÄÜ¶ÔÆäµü´úÒ»´Î¡£ÕâÊÇÒòΪÉú³ÉÆ÷²¢Ã»ÓÐÔÚÄÚ´æÖд洢ËùÓеÄÖµ£¬¶øÊÇÒª¿¿¶¯Ì¬Éú³É¡£

    ÎÒÃÇÓÃÔ²À¨ºÅ()´úÌæÁË·½À¨ºÅ[]£¬³ý´ËÖ®ÍâÊÇÏàͬµÄ¡£µ«ÊÇ£¬ÎÒÃDz»ÄÜÖØ¸´Ö´ÐÐfor i in mygenerator£¬ÒòΪÉú³ÉÆ÷Ö»ÄÜʹÓÃÒ»´Î£ºÏȼÆËã³ö0£¬È»ºó¾ÍÍüÁËÕâ¸ö0²¢¼ÆËã³ö1£¬×îÖÕ¼ÆËã³ö4¡£

    3. yield

    yieldÊÇÒ»¸ö¹Ø¼ü×Ö£¬Ê¹ÓÃÆðÀ´ÀàËÆreturn£¬µ«ÊÇʹÓõĺ¯Êý»á·µ»ØÒ»¸öÉú³ÉÆ÷¡£

    ÕâÊÇÒ»¸öûÓõÄÀý×Ó£¬µ«Êǵ±ÎÒÃÇÖªµÀÎÒÃǵĺ¯ÊýÒª·µ»ØÒ»¸öÅÓ´óµÄÖµ¼¯ºÏ£¬¶øÕâЩֵÎÒÃÇÖ»»áµü´ú¶Áȡһ´Îʱ£¬ÕâÑùʹÓÃÊǺܷ½±ãµÄ¡£

    ÒªÕÆÎÕyield£¬ÎÒÃDZØÐëÀí½âµ±ÎÒÃÇÔÚµ÷Óú¯ÊýµÄʱºò£¬ÎÒÃÇÔÚº¯ÊýÌåÖÐдµÄ´úÂ벢ûÓÐÖ´ÐС£º¯Êý½ö·µ»ØÁËÒ»¸öÉú³ÉÆ÷¶ÔÏó£¬ÕâÓеãÒâÏë²»µ½¡£

    È»ºó£¬µ±forÿ´ÎʹÓÃÉú³ÉÆ÷µÄʱºò£¬ÎÒÃǵĴúÂë¶¼»á±»Ö´ÐÐÒ»´Î¡£

    ÖØÒªµÄϸ½Ú²¿·Ö£º

    µÚÒ»´Îforµ÷ÓÃÓÉÎÒÃǵĺ¯Êý´´½¨µÄÉú³ÉÆ÷ʱ£¬»á´ÓÍ·Ö´ÐÐÎÒÃǺ¯ÊýÖеĴúÂëÖ±µ½Óö¼ûyield¹Ø¼ü×Ö£¬È»ºó»á·µ»ØÑ­»·µÄµÚÒ»¸öÖµ¡£Æäºóÿ´Îµ÷Óö¼»áÔÙÒ»´ÎÔËÐÐÎÒÃÇÔÚº¯ÊýÖÐдµÄÑ­»·£¬·µ»ØÏÂÒ»¸öÖµ£¬ÒÔ´ËÒ»Ö±µ½ÔÙûÓзµ»ØÖµ¡£

    Ò»µ©º¯ÊýÔËÐе«²»ÔÙ¼¤·¢yieldʱ£¬¾Í¿ÉÒÔÈÏΪÉú³ÉÆ÷ÒѾ­¿ÕÁË¡£Õâ¿ÉÄÜÊÇÓÉÓÚÑ­»·ÒѾ­½áÊø£¬»òÕßÓÉÓÚÎÒÃDz»ÔÙÂú×ã“if/else”µÄÌõ¼þÅжÏ¡£

    ±¾ÎİæÈ¨¹éÀÖÓã²¥¿ÍÈ˹¤ÖÇÄÜ+PythonѧԺËùÓУ¬»¶Ó­×ªÔØ£¬×ªÔØÇë×¢Ã÷×÷Õß³ö´¦¡£Ð»Ð»£¡
    ×÷ÕߣºÀÖÓã²¥¿ÍÈ˹¤ÖÇÄÜ+PythonѧԺ
    Ê×·¢£ºhttp://python.itcast.cn/
    0 ·ÖÏíµ½£º
    ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
      ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿