[Python ѧϰ]2.5°æyield֮ѧϰÐĵÃ
shhgs ·¢²¼Á˹ØÓÚ¡¶ Py 2.5 what's new Ö® yield
¡·
Ö®ºó£¬ÔÀ´ÎÒ²»ÊÇÌØ±ð¹Ø×¢ yield µÄÓ÷¨£¬ÒòΪ¶ÔÓÚ2.3ÖмÓÈëµÄyieldÏà¶ÔÀ´Ëµ¹¦Äܼòµ¥£¬ËüÊÇ×÷Ϊһ¸ö generator
²»¿ÉȱÉÙµÄÒ»ÌõÓï¾ä£¬Ö»Òª°üº¬ËüµÄº¯Êý¼´ÊÇÒ»¸ö generator ¡£µ«ÔÚ2.3ÖУ¬generator
²»ÄÜÖØÈ룬²»ÄÜÔÚÔËÐйý³ÌÖÐÐ޸쬲»ÄÜÒý·¢Òì³££¬ÄãҪôÊÇ˳Ðòµ÷Óã¬ÒªÃ´¾Í´´½¨Ò»¸öÐ嵀 generator¡£¶øÇÒ generator ÖеÄ
yield Ö»ÊÇÒ»¸öÓï¾ä¡£µ«µ½ÁË 2.5 °æÖ®ºó£¬Çé¿ö·¢ÉúÁ˺ÜÔڵı仯¡£
ÔÚ shhgs µÄÎÄÕÂÖжÔÓÚ yield ²¢Ã»ÓÐ×öÌ«¶àµÄÃèÊö£¬Ò²Òò´ËÈÃÎÒÔÚÀí½âÉϲúÉúÁËÐí¶àÎÊÌ⣬ÓÚÊÇÎÒ×ÐϸµØÑо¿ÁË What's new
ºÍ PEP 342
Îĵµ£¬ÓÐÁËһЩÌå»á£¬ÃèÊöÔÚÏÂÃæ¡£
ÕâÀﲻ˵ΪʲôҪ¶Ô yield ½øÐÐÐ޸ģ¬Ö»Ëµ¹¦ÄÜ¡£
1. yield ³ÉΪÁ˱í´ïʽ£¬Ëü²»ÔÙÊÇÓï¾ä£¬µ«¿ÉÒÔ·ÅÔÚµ¥¶ÀµÄÐÐÉÏ¡£ÔÎÄ£º
Redefine "yield" to be an expression, rather than a statement. The
current yield statement would become a yield expression whose value is
thrown away.
¿ÉÒÔ¿´µ½£¬Èç¹ûÄ㻹ÊÇд³ÉÓï¾äÐÎʽµÄ»°£¬Æäʵ»¹ÊÇÒ»¸ö±í´ïʽ£¬Ö»ÊÇËüµÄÖµ±»ÈÓµôÁË¡£
ÄÇôһ¸ö yield ±í´ïʽ¿ÉÒÔÕâÑùд£º
x = yield i
y = x + (yield x)
ÄÇôÕâÖÖ»úÖÆµ½µ×ÊÇÈçºÎ¹¤×÷µÄÄØ£¿ÔÚ2.3°æºÜÈÝÒ×Àí½â£¬ÄãÍêÈ«¿ÉÒÔ°Ñ yield Óï¾äÀí½âΪһ¸ö "return" Óï¾ä£¬Ö»²»¹ý
"return" Íêºó£¬º¯Êý²¢²»½áÊø£¬¶øÊǶÏÐøÔËÐУ¬Ö±µ½ÔÙ´ÎÓöµ½ yield Óï¾ä¡£ÄÇôµ½ÁË 2.5 °æ²»½ö½öÊÇÒ»¸ö "return"
Óï¾äÄÇô¼òµ¥ÁË£¬ÈÃÎÒÃÇ¿´ÍêÏÂÃæ¹ØÓÚ send() µÄ˵Ã÷ÔÙÃèÊöËü°É¡£
2. Ôö¼ÓÁË send(msg) ·½·¨£¬Òò´ËÄã¿ÉÒÔʹÓÃËüÏò generator ·¢ËÍÏûÏ¢¡£ÔÎÄ£º
Add a new send() method for generator-iterators, which resumes the
generator and "sends" a value that becomes the result of the current
yield-expression. The send() method returns the next value yielded by
the generator, or raises StopIteration if the generator exits without
yielding another value.
Ö´ÐÐÒ»¸ö send(msg) »á»Ö¸´ generator µÄÔËÐУ¬È»ºó·¢Ë͵ÄÖµ½«³ÉΪµ±Ç°
yield ±í´ïʽµÄ·µ»ØÖµ
¡£È»ºó send() »á·µ»ØÏÂÒ»¸ö±» generator yield µÄÖµ£¬Èç¹ûûÓÐÏÂÒ»¸ö¿ÉÒÔ yield µÄÖµÔòÒý·¢Ò»¸öÒì³£¡£
ÄÇô¿ÉÒÔ¿´¹ýÕâÆäʵ°üº¬ÁËÒ»´ÎÔËÐУ¬´Ó½«msg¸³¸øµ±Ç°±»Í£×¡µÄ yield ±í´ïʽ¿ªÊ¼£¬µ½ÏÂÒ»¸ö yield Óï¾ä½áÊø£¬È»ºó·µ»ØÏÂ
Ïà¹ØÎĵµ£º
Ó¦¸Ã¾¡Á¿±ÜÃâʹÓÃÈ«¾Ö±äÁ¿¡£²»Í¬µÄÄ£¿é¶¼¿ÉÒÔ×ÔÓɵķÃÎÊÈ«¾Ö±äÁ¿£¬¿ÉÄܻᵼÖÂÈ«¾Ö±äÁ¿µÄ²»¿ÉÔ¤ÖªÐÔ¡£¶ÔÈ«¾Ö±äÁ¿£¬Èç¹û³ÌÐòÔ±¼×ÐÞ¸ÄÁË_aµÄÖµ£¬³ÌÐòÔ±ÒÒͬʱҲҪʹÓÃ_a£¬Õâʱ¿ÉÄܵ¼Ö³ÌÐòÖеĴíÎó¡£ÕâÖÖ´íÎóÊǺÜÄÑ·¢Ïֺ͸üÕýµÄ¡£
È«¾Ö±äÁ¿½µµÍÁ˺¯Êý»òÄ£¿éÖ®¼äµÄͨÓÃÐÔ£¬²»Í¬µÄº¯Êý»òÄ£¿é¶¼ÒªÒÀÀµÓÚÈ«¾Ö±äÁ¿¡£Í¬Ñù£¬È« ......
Python»ù±¾°²×°£º
* http://www.python.org/ ¹Ù·½±ê×¼Python¿ª·¢°üºÍÖ§³Ö»·¾³£¬Í¬Ê±Ò²ÊÇPythonµÄ¹Ù·½ÍøÕ¾£»
* http://www.activestate.com/ ¼¯³É¶à¸öÓÐÓòå¼þµÄÇ¿´ó·Ç¹Ù·½°æ±¾£¬ÌرðÊÇÕë¶ÔWindows»·¾³Óв»ÉٸĽø£»
PythonÎĵµ£º
* http://www.pyth ......
ÕýÔÚÔĶÁ×îаæµÄ¡¶A byte of Python¡·¡£·¢ÏÖPython3.0ÔÚijЩµØ·½»¹ÊÇÓÐЩ¸Ä±äµÄ¡£×¼±¸ÂýÂýµÄÌå»á£¬ÓëÀϰ汾µÄ¡¶A byte of Python¡·×ö¶Ô±È£¬×îºóÔÙÈ¥²éÔĹٷ½ÍøÕ¾µÄÎĵµ¡£
1.
Èç¹ûÄãÏÂÔØµÄÊÇ×îаæµÄPython£¬¾Í»á·¢ÏÖËùÓÐÊéÖеÄHello WorldÀý×Ó½«²»ÔÙÕýÈ·¡£
Old:
print "Hello World!" #´òÓ¡×Ö·û´®
New:
......
http://code.google.com/p/android-scripting/
Android¿ªÊ¼Ö§³Ö½Å±¾ÓïÑÔPython¡¢Lua¼°Beanshell£¬Î´À´»¹½«Ö§³ÖRuby
×÷Õß Werner Schuster ÒëÕß ÕÅÁú ·¢²¼ÓÚ 2009Äê7ÔÂ5ÈÕ
Android Scripting Environment£¨ASE£©ÏîĿΪAndroidÔö¼ÓÁ˽ű¾Ö§³Ö¡£Í¨¹ý°²×°ASE£¬ÎÒÃÇ¿ÉÒÔÔÚÉ豸Éϱàд½Å±¾²¢Ö´ÐС£
ËäÈ»ÏÖÔÚÒѾӿÏÖ³öÁ ......
2005-2006ѧÄêµÚ1ѧÆÚ
±à Òë Ô Àí
¿Î ³Ì Éè ¼Æ ±¨ ¸æ
°à¼¶ 02¼Æ(¶þ)
ѧºÅ 19
ÐÕÃû ÁõÏþÃ÷
³É¼¨
Ö¸µ¼½Ìʦ ¬³¯»Ô
Ò»¡¢ Éè¼ÆÄ¿µÄ
¼ÓÉî¶Ô±àÒ ......