[Python ѧϰ]2.5°æyield֮ѧϰÐĵÃ
(ת)[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 Óï¾ä½áÊø£¬È»ºó·µ»ØÏÂÒ»¸öyieldÓï¾äµÄ²ÎÊý£¬È»ºóÔÙ¹ÒÆ
Ïà¹ØÎĵµ£º
Ä£¿é
Ò».¼ò½é
Ä£¿é»ù±¾ÉϾÍÊÇÒ»¸ö°üº¬ÁËËùÓÐÄ㶨ÒåµÄº¯ÊýºÍ±äÁ¿µÄÎļþ¡£ÎªÁËÔÚÆäËû³ÌÐòÖÐÖØÓÃÄ£¿é£¬Ä£¿éµÄÎļþÃû±ØÐëÒÔ.pyΪÀ©Õ¹Ãû¡£
ÀýÈ磺
#!/usr/bin/python
# Filename: using_sys.py
import sys
print 'The command line arguments are:'
for i in sys.argv:
print i
print '\n ......
Ò»¸öPython½Å±¾µÄ¿ª·¢È«¹ý³Ì
ÎÊÌ⣺Íê³ÉÒ»¸ö¿ÉÒÔΪÎÒÃÇËùÓеÄÖØÒª³ÌÐò×ö±¸·ÝµÄ³ÌÐò¡£
²½Öè²ð½â£º
ÐèÒª±¸·ÝµÄÎļþºÍĿ¼ÓÉÒ»¸öÁбíÖ¸¶¨¡£
Îļþ±¸·Ý³ÉÒ»¸özipÎļþ¡£
zip´æµµµÄÃû³ÆÊǵ±Ç°µÄÈÕÆÚºÍʱ¼ä¡£
ÎÒÃÇʹÓñê×¼µÄzipÃüÁËüͨ³£Ä¬ÈϵØËæLinux/Unix·¢ÐаæÌṩ¡£WindowsÓû§¿ÉÒÔʹÓÃInfo-Zip³ÌÐò¡£×¢Òâ ......
PythonÖеÄÒì³£
µ±ÄãµÄ³ÌÐòÖгöÏÖijЩÒì³£µÄ×´¿öµÄʱºò£¬Òì³£¾Í·¢ÉúÁË¡£
Ò».´¦ÀíÒì³£
ÎÒÃÇ¿ÉÒÔʹÓÃtry..exceptÓï¾äÀ´´¦ÀíÒì³£¡£ÎÒÃǰÑͨ³£µÄÓï¾ä·ÅÔÚtry-¿éÖУ¬¶ø°ÑÎÒÃǵĴíÎó´¦ÀíÓï¾ä·ÅÔÚexcept-¿éÖС£
ÀýÈç:
#!/usr/bin/python
# Filename: try_except.py
import sys
try:
s = raw_input('E ......
http://blog.chinaunix.net/u1/59571/showart_1901962.html
1. ÔÚPythonÖÐʹÓÃÖÐÎÄ
ÔÚPythonÖÐÓÐÁ½ÖÖĬÈϵÄ×Ö·û´®£ºstrºÍunicode¡£ÔÚPythonÖÐÒ»¶¨Òª×¢ÒâÇø·Ö“Unicode×Ö·û´®”ºÍ“unicode¶ÔÏó”µÄÇø±ð¡£ºóÃæËùÓеēunicode×Ö·û´®”Ö¸µÄ¶¼ÊÇpyt ......
PAMIE ÊÇÒ»¸öºÜÓÐÒâ˼µÄÄ£¿é¡£ËüÊÇÒ»¸öʵÏÖIE×Ô¶¯»¯µÄÄ£¿é¡£ÔÚ´Ë֮ǰÎÒʹÓùýClientCookieÕâ¸öÄ£¿é£¬Ëü¿ÉÒÔʹÓÃurllib2À´Í¨¹ý³ÌÐò·ÃÎÊÒ³Ãæ£¬²¢ÇÒºÜÊʺÏÔÚÐèÒªcookieÖ§³ÖµÄ»·¾³ÖС£²»¹ý£¬ÓÐЩwebµÄ·ÃÎʹý³Ì²¢²»½ö½öÊÇÏÂÔØÎļþÕâÑùµÄÊÂÇ飬ÓÐʱÊÇһϵͳµÄ¶¯×÷¡£PAMIEÓ¦¸ÃÊÇÒ»¸ö¸üÖ±¹Û£¬¸ü¼òµ¥µÄÄ£ÄâÊÖ¹¤ÊäÈëµÄ¹ý³Ì¡£² ......