Python高级编程

You might also like

Download as pdf
Download as pdf
You are on page 1of 316
aval Ae) AR ESE Le Hee ah fed aed a te RSs Btu bined Python S247 [%] Tarek Ziadé © ue Heit EAM F AR BB A Hy AR 4 it OR BEB7EMGRE (CTP) Sue Python ze / (3k) HH ; Wha, Re, EAM. — JER : ARCMRL HAL, 2010.1 ISBN 978-7-115-21703-5 OP OR: Ot OR OE IL. © ance eth IV. @IP311. 56 Ff EEL 4s Fel 43 PSCIP SICH EF (2009) 382029005 me BL Copyright ©Packt Publishing 2008. First published in the English language under the title Expert Python Programming. All Rights Reserved. AHA Packt Publishing AURA RMRAMLUM. AL MABE, MAMA SLE (0) Pa SR FE al Be 5S RHE. MALTA, RAL TE. Python Raa oF (3) Tarek Ziadé i th © we EW eres Xm ARUBA HIMESRTT ance a 14 0x 100061 UTAH 315@pipesscomen (hE hepy/www-ptpress.com.en Ae tae IE CEL AMA ED) © FEA: s00«1000. 116 . eo. 20 FM 42 FF 2010481 HIB 1 KE EDM 13000 At 201098 1 HCH 1 een SPRAA BAS Me: 01-2009-3160 5 Is 703. se fr: 45.00 71 MAMA: (010) 67132705 EDEMA: (010) 67129223 RMI: (010) 67171154 A ATLL A AOS, SPAT Python WPT PIES RAMAN TE RAT E:, TEM BA aE te ASTRA, PAPER. WORE AS. LAR AR. FPR. SOE 5S. APATITE RIA RAS, PELL Python BEIT RATE RR. Maho PS BREN HAS UH. EAA FEA A A BBB T APL INS BMS URS RAN, Hep ee A RT Python if BAS. ASHER —5E Python ERNIE AS ARE AP LAIR ERA FE RARE FFA Gi Python FRA RK. i Ok Python B&HIAAR CE TAT SLi, BURA Python, 1S 2H] MA WRIT . RAE, Python HPA BzE HE ABIRT « i#tul Google. YouTube, VMware 4 DreamWorks 23 HESS IK 25 1] MBZE ATH AE HI Python AA. Python it—H a F Perl. 1% Perl #47 CPAN. TiEAZE, setuptools #l PyPI 2451 TROPTAR. PRA = 7 Python AYE MAMA. Python 44a T Java Servlets Al Ruby on Rails, AW WAPRMERMAL SS Web ARS AR Se HA APL. IRAE, Web ARS BPI OL CWSGD 4/487 Python Web tHIEKISLN. 47 Google App Engine, RAVRNAHA NHS. Python (PRE AR DASE RE aA LET TE RAO LA AS | Dy 5 HA EE ALND ES RAK Z a] ABZEAE HA Python Tid Wey Python #7 A BY. MITA ATERER T Python MARA STMT E. Alt, Python HESAS AK. RRA RBS RSE, (EE, (UF Python (aH AES FIGS. Pi, ABET LEAL OG AEA Python 43 H, HEAG MH. ASAT — Aa EB. HINA Python i) AE, WR ARB CAMA. Woh. IEMA T AREER = PEAT A, BERRA Python 1 AAEM REM ETTIE. KAA E nose MMA, HA doctest MM RBIF ‘By FA Mercurial SEAT UUNSEH, GEA] Buildbot SEMA, LARARA] Trac SERIA A. RIG, PAT ME, MAT. HEAL LL Biden Alex Martelli ft) Borg Fiz, SEA TZ BTR SURURTEST SEA ft Python XE SHH Python, MARIE AH. SBE, KIERS EAR AST. BER TBE, A RRASEICALS hn PyCon ALAHKIM Python FH)" AMABM 1, Me DARIAN ST. WATT Le Python HALA A Ea AT Shannon-jj Behrens Ia tl X Python Ri PERE A, KT A Tarek Ziadé JER Ingeniweb 2] ff] CTO, 3¢ (677112 Python. Zope. Plone AAU TURE. [LBS Zope WR BBA SET, FAL Zope BAHAR. Tarek QI2T Afpy, J&AEKEIAY Python HPAL, IAS 7 PASAT AN Python 7588. fib 364¢1#4M1 Solutions Linux, Pycon, OSCON #1 EuroPython xR MA oe LR TS wT. HAE THERE. ALERERE ARAB MAM AAA, EAA AE Python AR. AFPY AP 48, Abit Stefan Schwarzer A THAL SRA Banh 8] A 40S Radel haw, Badt Georg Brand! t% 10 #P Sphinx 2¢4>493#, Peter Bulychev *t CloneDigger #6474 +).84, Ian Bicking *t minimock #3454484, Logilab i Axt PyLint 214-45 +04, SiH Gael Pasgrimaud. Jean-Francois Roche 47 Kai Lautaportti 4 collective.buildbot 2 LOX, Sith Cyrille Lebeaupin. Olivier Grisel. Sebastien Douche # St é fane Fermigier #4 #419. Ast OmniGroup fotki] T FALH4 OmniGraffle LIL, AY 4 HA AAS AME HH Rey (4A http://www.omnigroup.com/ applications/OmniGraffle) . 48] 4H Shannon "jj" Behrens 34 +4 Hy RATT REHAB Shannon -jj Behrens 41H @ 111886 Python NABH ACEKEA. ZERt Python Gere RIF HAASTAR LEZ A, RATA 4 ME TIE RAGH Tack PORARAR MIF, RELRMRT ZL F Gina-Marie Behrens, +#42AA RGA A I TAH 04 oe A LAF RA, Paul Kennedy J& Sydney #}¥ KF CRAG AIA RA AEG. AWIEIE Quantum 5 ABRARA A] UTS PLa TRY TM SE. Kennedy HM 1989 EFI FMERAAPMEE, CREF RAH. thE ONLI C/CH il Python CEASE AMID ARRNKAITR, Minit A. ATR. eee Oe. dE JE 10 FE, HART PLS LEAR KE RRA. HF 1998 AF 5e RSH UEFA EE REE, IF ELE Le BER BA. {bE 2006-2008 FRANCA SNEM, PARRA ARRRS AS, BRET, HAL FT 30 Prine. Wendy Langer J%-4¢3t Hunt the Wumpus #! Colossal Caves'jif 82/9 !2] BR°#2) J. Microbee Basic #172, IKEMRALATINGT. WS, MEA EAM RBS T Fortran. BH, TERIAL T REP Zi, MRS BRT SERS ERIE Python. J8 FRE 1 Sm IE Fetete CH SiR L, (Hse be 0 ses AP Python. fEA—% Web FRA, titH Ait Python, Zope, Django. MySQL fil PostgreSQL Ft% Are Hite Packt ZA] HMM Ayman Hourich 48°5{{) Learning Website Development with Django — RAVE. BERR FREAD Jesse, ARP REPAY RMF S AIS ReanFt (to R. HATA) abst se, wo OF Python 448 ! 3A 20 tHE 80 EAC DEER A A, EEA ESAT RE-TEADEEME AMS ERA. ANTS 245 Python SHEA AE, UAB MAA ERAN RS. RS BARE, E-MAMMB AE, AR, Python ALLA SHR ILE TARA RH. RL, VSIA SIF RA BRED Python, FPS A a ARR T 18 SERIES AH Python AF NAM, BEM — BIA DI a TEATS RAMA, BFS IRA RT RCE BS NIK HS EE "CHR T FFA GUE Python AIRE SBE 6 ALAA (Python FARBE) , REHACWAT-BRETASAD, WESRE THR CNLAARA. BAL. AFR T PALA Python FRA RBAM LER. BHAA BBL RAPALA Bee Python, UPR AA BE EH. AAA NOEA0, AORB ABR. (LE, yee A Python FRA RAMBLES BRAIN -HSG, HURA TREE RA PRT. MRS EBIRT A, BAAS, AAARIUHA BT RE EH ES 2 BERT RAAF EE EMER RIP AE. HERRERA HR. 3 MART AMBER, LCR FRAGZ be SR 4 REAL T A ELE CA. ILA th ETRE NY PEPS MME, We Te HutoT Bit BAF API ERAS. BSHRNTREON KERN, AEREFRTMPRABIN DE. 6 HL STIR, BOAT RS ENE AIK. “Ei — 115 Atomisator a oS ARETE. 7 SEB zebuildout, KL—TAF SLT RPA TERS. 3 Y2MUFL-F Zope Al Plone 4:1, SRAEtLIFARAE Zope HLIRZ IME T « 38 IAT MLA GEE SERA, HRT RTI BBS 9 BES PAL HST I AE tA IT 9B 10 HAVEL, HLS Tee Te ROMER Python iS SANE AS. BA BHAT MRR HR RAAT BAD EATON, SHH TPT BE AANA BRR A SB 13 AERO 12 HEAR, BEGET RT RRR 14 BHAA MM RURRAR AT SR, KRW AEhep://atomisator.ziadeorg, RAAAPRARMBHMM. CH BAD HAA, UR BRR SRE. AHA ACSA €E Linux. Mac OS X BX Windows 2 FLPNTFRA Re SN. 1 Be Sree TAMIR, DER RSENS EN Python Je AEA AR oR F Windows FRA RRMEE, (Ay (hill ZeWe GAAS Mac OS X Fil Linux FUT DUA ALL ST. RRL, BTA a PLMDTT DEFEAT EA EAS Kung, ABR TERI, HRA TA EN. Pr, BGT ‘GEMS EL BR FG REPRE 7c AR FO HE BE 5 APRS APE NAB ABE Python HARA RB SIN. ATTA CONFER) JE TA ASN. AT ET UHR “UTTREAT Python Si F2” RBA AER BREN ARIE, I AAS DHE TA. AEG T BRATS. BURRORA TARE, (LASS ERAT Python Sil. FEA, WN SRE Se Ria AR A ASE, FT ABA MASP Bl VF SE He LRA HAM. AGRA T 2 EA RCA RRA EGR, AHEAD AR A LAB mi of Python FF At A fa i te AS PEER BRESEOMERERED, HEARS, HACRETAPARRAREE Aiihle RO, PAMELA CAAA, RE AAA, JERS AMIR IEEE RRA ABPHAE HP EAA A EMAAR, UF RICE VER. AEA TR it aR.. IX ASERSETT CL buildout #7207. >>> from script_engine import run >>> print run('a + b!, context=('a': 1, 'b':3)) 4 Sr FT A AH OF BTS $ python setup.py --help-commands BS genganze. QD wswan. PRABN TAA AAPA FR ERE http ://www.packtpub.com/files/code/4947_Code.zip. PR EBACE HSER TE A. {e# (4) Pl Mihttp://atomisator.ziadeorg 8A Vs PRED AIS . wl aE fF Python JBM FF RA DAR OME RERUNS P NET OPE RS, CARB IEN LR. BARE AAR Wh, RAKHT REAM, AMR OE. alin, PTDURE Linux 2F SEF TE BRAN ELI BB BB BCE TEE AE AR MY 5 ASL AE A A HE Ruby Java SVP BiG BRE UH). SRA AEA SPAN MISE, Python HELA Hl PE Hz. ASH ATT SHEA Python 2 WRIA, AE TR. uth: © Gufel 22 Python; © AO AAR eT: © -UNAATHHIL 24 setuptools HH Python; © WAREFRHAS, WER RHMA. MURR Python (RAE, IFAS T ACMA, A RL RL AY 11S, FRB BERC AREY, CEMB AE A] LAER — ee EE IG. AL, EE BULAF setuptools HA, NFABIM TM Ew eT URE ENE Windows #1 RA, ALAWAR BA TATE TR TE, AT AS FSP GEA ITA A BORE HRT HEI HE, 1.1 3248 Python Python if 2 HERE A AHR (ERS FEAL, €448 Linux, Macintosh #! Windows. 7E Python Sie HSI FARKAS FARIA http:/vww.python.org/download "5 ARB) tH Python HLF Se AAPA EAA FARE GER RAHF 6 HON ARE AL USAT ACA MED IH, 26 “TRI Cdedicated)” Hii PAH (BM http://www.python.org/download/other). Ziv, $28 A LB AAE AT FABRE RATA © RAG Bh, WTA Python, HMKEKS CMLERHAHAR BK Ra. EH, HKLA-NE, TERM Python ZH, HRAAT HAH SMA. 1.1.1 Python SQUARE Python (2S URA A CHEERS, BERK CPython. 4A {1825 Python BY, i TORRE. ME MM, C RRA E. BRT Ci AINZAb, Python THAR T SVR, DARREL AE TEIPR ER. RASTA RAL A Hi CPython 89% i JL SURGE, (Fb Python HEATH EAM ERAT BAM. 1. Jython Jython Python ef) Java SEGA. EIA ERM Java FH, EIT RA TT LA¢E Python (38 (4E Python 4, FPR ARES CTR BEE) PB rh Ha GEE] Java 28. Jython TEA DA AEM J2EE ZARA AE L, A$ Python TPA A. lB, HAT DHS Java IVAPLFES| AB Python I ALFEIF fit! Apache Jackrabbit (—#3EF ICR SH ROSCRY-C:RE API ABAD Python PEPE, ME Jython PAE RA. Jython fy HUA: 2.2.1, Jython FFA ABA TECED AE 2.5 MEAL. LCE & i& Mn Pylons Z 38H Python Web HESCIE FERMI Jython WAGE! Java HH 2. IronPython IronPython ¥ Python 3]. J NET 35. 230 5 A ce CHEESE, IronPython ft) EFF RARGURF BAA). HRT RA 1.1 RAF 2007 4 4), EER Python 2.4.3 PRARUIEEL. EHEGELE ASPNET RSET MEA, FPR A AZENET BUSH P12 Python (003 BUTANE Java ERSESMLAD Jython FE. EMP RIAA ME RET ARM. NET HEA Java HA, MRRAMTFRA AUR L—. TIOBE XRG th iba NET BA 2 1.18288 Python MAA NRE. 3. PyPy PyPy BREE A SEERA TR MBI AK, JL A bn Python if e¥ HES Python. fi: PyPy 'H, Python (REELS ASS BALI Python 485 (). 9 Python SEEK ALL — (ty) CPython iia» BE C RRA AATF. (ATE PyPy SEBRIAH, X C AUR AEA Python i 2 HS. JAAR PRAT AT VA LEIE TAIN PLE Python MARAT MT, ARIAL EE CPython 3¢ SAR AC HE DA SICH AK) ARG BEL (3 J http://codespeak.net/pypy/dist/pypy/doc/ objspace-proxies.html). PyPy (i247 HERE CPython, AAAEMILIEP A T RACE. Bi AiG NT HHRRZLAORANSA, SATE RRA. CREAT RAGHE 1.7~4 ZI). SE RTEN A RR ACHE Python 2.4. PyPy FY DUE (EI Sa Pe IF 22 0 FA, EAS SUMO AI, FRM AD HAM PAS aE. EMRE, PyPy (FPR SES SEP E A TEII BL, EE BA A NYO A A EERE BL LA. BU, AERP TE 4. Shs e NAR Python HAVES Se MAA HAS. fA, Nokia BLES Soo AI FALLIRT Python 2.2.2. Michael Lauer Jf 2485" —“SM AIF ARM i)7 19 Linux 2688" it) Python & HAL, ESTE CEE Sharp Zaurus -Z AH BA | AIH MN OIFEARE, BLAH EAE Linux, Windows #1 Mac OS X 1 24 Pythons 1.1.2 Z Linux WB RE MRE Linux HERS, BARU CR SRS Python. Mitt, WLUARE shell PAE, wR ia. tarek@dabox: ~$ python Python 2.3.5 (#1, Jul 4 2007, 17:28:59) {Gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type "help", “copyright”, “credits” or "license" for more information. >>> MRALBI Ain, MAHA Python Reh (eH sk shell IE, HAA Aaa. TRS HERRERA, LARGE Python MIE CHELKIE GCC) UR A ARIE CE JE Linux) EG . WURAH ME Windows, IAAI LNA Fl MY Visual Studio (294% 3 Bie RST Peg. FAIRY, Python (Sha HR Hk. TET IRE CEASE HMB 2.6 WAT). WRAAME, WALA CH TERS LEER MAIN Python, rie ite (res LAR HEM. Python AAA MICE ESL, (LAT LLL Python fro TM. SR, AP HEB DUT tr, HURT SE path WBE, aE Ara. tarekédabox:~$ which python /usr/bin/python tarek@dabox: ~$ python python python2.3 python2.5 python2.4 SORA python HS GRE Linux AEP IAAML), WAT CGE Linux ASEH KATE LAE, Pld Debian FH PENN apt. Red Hat PHEGE pm HF. 4M, HAT PU Sak EER COB NYT REE. RECESS GL ROL RET RO A a ERE) EMA. 7h, CEPR eo PE LAH, Rie SHEE Python (FRIAR. 1. Mr LA ee 2228 Python Bee LAAT LB Linux “Pak ETL, ORE FTE Ah. WEAN Linux RATRAMIAIA, ATRL E 3 HORTA OS: © apt-get install python #£4£F Debian MR4THLATH, itl Ubuntu; © urpmi python #£4&f rpm MIATA. ite Fedora BR Red Hat RF); © emerge python 4X Gentoo KAT MAE. DURE LR LAP BT HAR ANY Python, Whig BEE AMET eae T SRAREREN, TREN SRM NE. ERLE, A-LSA BIEN. RY, WRB CIR, RATUT I, BAKSABIEMN. SER Ae INA AR RR © python-dey 7i4W 7% C BUAIN ATEN Python LICH: © python-profiler “4 J —2¢h xt seit GPL 3k Ubuntu) f)4F GPL MiSs (Hotshot +38 )s © goo ERE LA C RBIT REN ATI. 2, LEAR Fay ACH AML —+P ommi LA CUFT configure, make, make install #4) 5G LAY Linux 2247645 #41 Debian 1.1 323% Python AR Python MS PEIFKSC MS BABE. ZE http://python.org/download FJ L.FLE) Python LB RAAT {FA weet Fat weet BA A—* Gru HA, AMR FRAMES TLA, CAMHS *pAaRAEAR AL, 4 hitp://gnuwin32.sourceforget.net/packages/wget.htm PT VA F RE Windows -F ¢ #48 MA a — it aR AL, 4 Linux & Mac OS X + @ P , TvAid cide apt S. MacPorts 2H AK PMLAARA. ‘SiV% Python MY #1 make 7) gec. © make GREECE CHM Makefile), KAMAE ITN WM RED HAL, FURDHIPRRET oe PRE. EGLtt configure # make fir HAH. © goo GNUC HiiF28, CEREAL F I OE Se” TPR PERE. AM RRAH OA BRT C1). AER Linux ATMA! CON Ubuntu), ATE Bei J SE build-essentials HFFA RAIA A TAL FER Python I, BANTER ed /tmp wget http: //python.org/ftp/python/2.5.1/Python-2.5.1.tgz tar -xavf tar -xzvf Python-2.5.1.tgz ed Python-2.5.1 -/configure make sudo make install RFA PEL AR BE, Se PU SEE Et A Se ERT AG ANSE EAT aR HE python-dev ffl. ZEW, ttl Hotshot (Lar. “4 seRax HRS Ta, LAT RLAE fir 247 (EH Python J. FREE, WNARCAMH Python 7, LETTER R— Fm! 1.1.3 7 Windows WB RR 4£ Windows 25 F #i¥% Python AIZE Linux FRE FAIL. EGR RMT ARB, i gE BRERA ETIE. python.org (FRET PME RIE, EOE TY PRA SS EAE CHEE 1.1 Sra), PAD Him Rett Select whether to iste Python 2.5.1 e oaata python windows 1. %48 Python WR—-WMRARVEM, Python HH RALZE c:\Python25 HAF. MARIE AEB FEO Program Files SCAPIE'P «PEAY LL REPRE A path “PLE. Sti 2 RAS OUASIEM PATH, LAE REE DOS or 47 OP HAY Python. MPA SA Windows MAL, ABMT LGR F PRE: © ESCH start (FF) SEA AY My Computer (eft) Hie) Elbe E Mite tt, BEA System Properties (ASME) MiFHE; © WRB) Advanced (ii) HEH; © Mitt Environment Variables (FS) Hell © GAR RSE PATH (1. SPS NUER AR, IER“; CD” OH SARIN MRRP eb Fe © c:\Python25 LA (8 24%i4 IB! python.exe: ¢ cAPython25\Scripts Li APE % Python MMB = HBA. JAE, BEAT CLE ta O47 AO PiS4T Python S. LIL, BUEN Start FIR) Hee AOTREE ATK Run GET), HA dr omd, aCe Mot OFF WO Hie python, aE Ata. C:\> python Python 2.5.2 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> JRPEBLAEMEIEAT Python J. (IXAEAVERATA Linux PO ALANS, BEIT, 1.1 823% Python AEP PARANA, Wire ee MinGW. 2. % MinGw MinGW 4tX} Windows FAFFRNMHEA. EST goo RSA ATE, HET AFLEUY REALE. MinGW BI LLANE {UM Microsoft Visual C++, FILE RSH ER HA Pee, CGR AREE I EEE A EE 6 Mi, FRM MinGW, FFF! Sourceforge (FM http://sourceforge.net—HAMN . Ht MFR TPR A PRMD) RE. ANAT IER, EMS BITE RUT HOE fei, A PREIS E All Python FF, th BENS MESER PATH MEATHSAC, $n c’\MinGW\bin, LUE AES IHL eeetthii >. HLT PATH ZERCZ JG, MATE O47 Bet MinGW We Ae, dF BAR. C:\>gee -v Reading specs from c:/MinGW/bin/../1ib/gcc-1ib/mingw32/3.2.3/specs Configured with: ../gcc/configure --with-gee --with-gnu-1d --with-gnu-as ~-host= mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls ~-enable “languages=ct+,£77,objc --disable-win32-registry --disable-shared -- enable-sj1j- exceptions Thread model: win32 gee version 3.2.3 (mingw special 20030504-1) RH OTL aia, (4 Python Sa Pe se A SS BA. 3. 448 MSYS 4 Windows Fat, LAHAINA MSYS (Minimal SYStem). GAECE Windows °F 4 L:4&6t—-‘+ Bourne Shell ir 24TH, CEA AT CATH Linux BK Mac OS X RARAAH Lite, Gop, mF. FWA OLS), HEE Windows °F G HH TABLA, AEE A PRT 4£ MS-DOS Mr O4T OPT . (LT MER SMR ERLE CA RT A REME AE SK FAR MSYS, MSHS A OMA. WRU MEAS, BBA MSYS Hem eRe LE c:\msys Hk Fs PK. ER MinGW MRF E PATH 48:38) Mn c:\msys\1.0\bin. Hie RRI CERT, HEED ALM Bourne Shell fir. Aut: a RR HY IK Windows Ft, IBA RAE MSYS. :, REMCBRRT MinGW # MSYS, FLALAR MLR T Linux QR HARHA, BH EMEBA Windows FEET Linux FAI MI RBA ELD. 1.1.4 7 Mac OS X HIB RE Mac OS X £:4&T Darwin AY AKIN, if) Darwin Ill 9¢- FreeBSD fi) RE AAT 445 Linux FRAUD, thARAR®. Apple FEvkz Lisi T—AMESISE (Quartz) R—-MFRINSCEEBE. MA Shell FLA, ERO MEERA ARAL. i. TREAD BI—A 4 Wy Mhome MUAH, HR] ARR E/Users SIC. MAL REFFI HS See 2A Ae /Library SEP. BL eA BH /use/bin (4), ALAA Linux 19 A. All Linux 45 Windows ‘/—#, 7£ Mac OS X 248 Python HARA. Hy LL PERRY SR, LAT RIE KR MK ER MT, ALTE 27S aa F aR Python. RLBENALAY Python tHe 7 ANBLIN — RE PORE AS. VSL A BL Lee FEF Le TE Mac OS X PUAN A CAALSS PERLE Leopard) 44474 T Python. $87 4b3%% Python, AREA http/www.pythonmac.org/packages FX Python 2.5.x i HERI. A FRB ay VSARBIAG + dmg FF, SPAN pkg INSEE. OREM 1.2 Bra. 1.2 Python #947 SEEK Python 2248SI/Library SCPE, PERE AU MERE, BER RRA DL 2 shell ‘Pisff Python J. 2. WAP DURE DTK ee MRA Python, ill Fe BER: © gcc HIB Xcode LAPUARRRB, WMP BE. ATLA http://developer.apple.com/tools/xcode F®; © MacPorts ‘45 Debian HAHAH BAL apt RAUNKHBEBAR, AE ‘5 Linux (AY apt — FR, Gf BF Oe BoM OL RRL, BML http://www. macports.org. SE, MIVFEAAS Linux 76448 BA RK EAE LET 1.2 Python t7S4F DUT python fr Ja. HEIR Python 47, RAT LUG Python MA ATUUTR A. SIR, Pla, WILLE Ese — HB, MEA. macziade:/home/tziade tziade$ python Python 2.5 (r25:51918, Sep 19 2006, 08:49:13) [GCC 4.0.1 (apple Computer, Inc. build 5341)] on darwin ‘Type "help", “copyright”, "credits" or “license” for more information. >i +3 4 > * 8 40 “4H FIBER, Python HAPRRT APSE S be. BAER ABC 18 "PABARIUIEAY, Python MAPA COROT. AERC, Bier atl AE EL OTT SENECA a. Bi thot 8 FoR Aik ds G44z, A Linux 3 Mac OS XFS # Td C+D Sse, 4 Windows -F & * I A4& Ctrl+Z M8. Sime ReIte HIF tit SAF SSAC ERE BP Ae TS} fl, PR AG EL ae a SSH. 12.1 eho WHMST BEM SC fin S47 PTS EE I AICPA . 24'EE eA wHINS Ze FRAMES Ht PYTHONSTARTUP, HAT AR EH RE ALTA. ATHY Linux BATA ET — RUA AY A, EHCP RE, SCRE AL pythonstartup. He Tab Mem Aa Fhe A AAG Ro CAMERON ARM HE, ROT AURAL readline BURSON CAPE readline HUF FE). MRAART MAH, HALE ele—P PIER IDA, EDN Python dr 4THRIN T He tit AANA AAS LON A. 4 python startup file import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete") # history file histfile = os.path.join(os.environ{"HOME'], '.pythonhistory') try: xeadline.read_history file(histfile) except I0Erroz: pass atexit. register (readline.write history file, histfile) del os, histfile, readline, rlcompleter TERY 3 ARF Gl SCE, IME SL i % ON pythonstartup. #8 fa WR i FR BE PYTHONSTARTUP, 3 HERS E HIER ERP A ETAL. . & pbp.script &P G2RAT python BAMA, ZH pythonstartup.py. A SS http://pypi.python.org/pypi/pbp.scripts # FR XH, RERRUSZA A pythonstartup 2°77. iQ BIR PYTHONSTARTUP 1.2 Python S47 FoR RM A Linux 4 Mac OS X ARE AS, MA RMP OF RRL SE HAP EA RFRA MMA. RGAE KAS IRE PYTHONSTARTUP Ly HAFHAS] AH shell BAMA. H]40, Bash 4 Kom Shell 48/1) #4 QQ A prolle 4h, TH eiRkt iB ted ARE. export PYTHONSTARTUP=~/,pythonstartup te RAR HR Windows Ae KH, MARK administrator MEAR, TA OFLRE, REGMARAEE-TSRMEE L, Mabe R ab ALP RR. SABRE AM STM, HDT pythonstartup MA, HERA MUTA. Plan, He Tab REA BIAS A AAR BIEL HA, ME Bia >>> import md5 >>> md5. md5._class_ md5._file _ md5._name_ nd5.__repr_ md5 .digest_size md5._delattr_ md5._getattribute_ —md5._new_ nd5._setattr_ md5 .ma5 md5._dict_ md5,_hash_ md5.__reduce_ md5,_str_ md5.new md5._doc_ md5._init_ md5.__reduce_ex_ md5. blocksize AMSA MARTILES BORE, Ald, ik Python ABRAM, LL BEVERLY BGR (I http://docs.python.org/ib/module-code html ‘Pf code module BBS) CELULAR A A — ROR th OAT! 1.2.2 iPython; {4RWASTT — Ae fT A— Python ATP. sPython HAM AREA TM Ott. TERR ARE, BTR ALAS © WAN R RS: + ei S47 PAGE shell ARE; REAR B1e eT ° WMTA. BL4A8 iPython, MIELE hitp://ipython.scipy.org/moin/Download 4? FARLEY, #8 EPHRATA Fd AO BR UE BR EEN PR 7 327 iPython $2GEHY shell JA. HHIRGN PHA. tarek@luvdit: ~§ ipython Python 2.4.4 (#2, Apr 5 2007, 20:11:18) type "copyright", "credits" or “license” for more information. python 0.7.2 -- an enhanced Interactive Python. = -> Introduction to IPython's features. Qmagic -> Information about IPython's 'magic' % functions. help _—-> Python's own help system. object? -> Details about ‘object’. ?object also works, ?? prints more. In [1]: iPython 70) Bt SRR, iPython HR-MRAM MSTA, HA APR AR SE VLG & BEAR AGE AT HG BHR GMS. 1.3 #23€ setuptools Perl HAARA =D, SARE TEAR. Perl CPAN ASTRA A REE HEMT AAS i SSE CLR IERIE eA. ELSE, Ze Python SBR HTL TAA, FH EMINT ey RNa. CART: © 4S #EHtZE Python B77 POMS PHOHE, M4 FE Python Package Index(PyPL), FCM ARAL Cheeseshop (| Fi THF BBC (1) Monty Python #4); © 44% setuptools MUPBRK, CREF distutils HRM, HARRIE BAL PyPI2e7. ERB EZ, FEN ERE EE. 1.3.1 T/PRE Python [PHPHEGE T 7% 9 distutils AUHIGE, EHRUET — ATU T Seah Python SYA RLAE 1.3 £4 sotuptools MIA. CRENARAB: « HDRROURETOROR EBL GRUMERS. WAAR) FER: © AUER “4” CHE Python Pt, 72 —T HH — TRE MOURA ASEH) COPE SAR ORT IL, ALAERE AURE AL BURPEMY Python SPH, 3B AEBIREZE Windows «PF UTM ETE. 2 distutils THEN FE, AE NORA. setuptools AME RRA SAT, AROMAT BRK. CRT ame, © DAA AMHR, Hea. BTS, Python “PAH setuptools HAF Debian *H(H9 apt. (¢ He Python PIKE —MS sotuptools HE, RAPER. Hsp SES eter eaten, RCAINET AT, HE G'S ERA EH Python WARP A, CLP BRET EELLIE A, Cie A LR Python HA B OMERE PET. ZEK2 ni, SAA seme Python KH, FEAR setuptools MIKE, ABH SAA setuptools, HA EIAA Python PTE RIT A — BBP. 1.3.2 (FQ Easylnstall $24 setuptools B38 setuptools, ify HB EasyInstall, EME —MA PRE. RE EX! setuptools MARAT, AL EAT MTP AR OLE PE RT ES. RA EAN FRYE SER setuptools [22% MK Peak [di Chttp://peak.telecommunity.com/DevCenter/EasyInstall ) PF #& 3 i 47 ez_setup.py WAEIY, “E(N{7 HHL HAE http://peak.telecommunity.com/dist/ez_setup.py, fi F Kim. macziade:~ tziade§ wget http: //peak.telecommunity.com/dist/ez_setup.py 08:31:40 (29.26 KB/s) - « ez_setup.py » saved [8960/8960] macziade:~ tziade$ python ez_setup.py setuptools Searching for setuptools Reading http: //pypi-python.org/simple/setuptools/ Best match: setuptools 0.6c7 Rik Sel Processing dependencies for setuptools Finished processing dependencies for setuptools MRZWRRT PGA, KOBE THAR. KN, BEAT BAM (-U setuptools), #1 FATA. macziade: ~ tziade$ python ex_setup.py Setuptools version 0.6c7 or greater has been installed. (Run "ez_setup.py -U setuptools" to reinstall or upgrade.) macziade: ~ tziade§ python ez_setup.py -U setuptools Searching for setuptools Reading http: //pypi..python.org/simple/setuptools/ Best match: setuptools 0.607 Processing dependencies for setuptools Finished processing dependencies for setuptools 4 WME, REVRA TBA easy install MiST. Mtv ny se TET AGP AAT HE. PM, MUR ABE Cee RSE py.test CEE RIF HLA, Bi htp://codespeak.net/py/dist), MAR BATU tes. tarek@luvdit: /tmp$ sudo easy_install py Searching for py Reading http: //cheeseshop. python. org/pypi/py/ Reading http: //codespeak.net/py Reading http: //cheeseshop. python. org/pypi/py/0.9.0 Best match: py 0.9.0 Downloading http: //codespeak.net/download/py/py-0.9.0.tar.gz Installing pytest.cmd script to /usr/local/bin Installed /usr/local/1ib/python2.3/site-packages/py-0.9.0-py2.3.eqg Processing dependencies for py Finished processing dependencies for py DOAN Windows °F, UAiINAI 4 ERAE easy _install.exe, 72 Python SHE PE) Scripts CPF IC A ARBY'S. EAD 1.1.3 iP PER AEAE ME PATH PRL RAUB PAID, 1A JEtAAT LAAT easy_install fir (#E Linux #1 Mac OS X-FEL, eT SM eat Win sudo, AAR BAA root HAL). FATAL, SRE Python HMA. IAEA RON LAE A TEAR. ME 14 TH Windows 5¥ 6 F 2324 RAG (hI BEE, Whee ASPB] MinGW sek BN RR. 13.3 1§ MinGW #68 distutils P PREFAY, PILATE Python RUMOUR HE. GEE Windows “FH +4} 4. M9edE python-installation-path\lib\distutils X73 (7 Windows 37 4 F WWE Lib CFR IE F, BOPFREAS) FOR—1 W distutils.cfg It. IFAM CAR IEMLL EAA. (build) compiler ~ mingw32 RPERRERSAE MinGW $22! Python !, fF2K Python HRMS C FUN Et, Re Oa MinGW. [ss RA CRE RAH BZ HARE HET | ] 14 Leh (eseint Lt AUTRE, NAP RI ET. AHR, Ba ERT Aa EEA FA A) SAS ER IAT EEE EP HATE T ASE PPE A RBA 4E—*P Python JAP. RT SRE ZS, WE SBR IC. PES RS =ARELEZLAN Lo [Ss FRARMIBERALI, ESLEHAS UHM ATARI. ] RELAPSE AE: Bit ALAR CERI), AAT AER CITE). IR, ATMS, IPRA BAT CAE ISSA HE TE 1.4.1 RFA oe4f 38'S HAT ADAG RARE RA BSR, AER ORR A ICP ar ARE 15 B1e Relt CHR E AIHA e. OURAN — a ie, SRE Oar AE PAPAL AS. (ELE ASAT PR AE OR. dO, AEE I, TE ATE UP, RORRERT CAPE ASR EA). BRE PEASE eA (RUPE, ROPER TEP AR EAN Fy ASt6H) Python FSH ‘= ASL Python &—/4}8t id ko Windows -F GH Python 448.647 A ERAT AFT AA PP A. ARAL Python Fo Rg HES. 40K 8 ARI Hk BRT Python, MATRRERE REM LARK. RLAUHA PAE BRA 2A HH KB, FTA http:/www.portablepython.com. y Damn Small Linux (DSL) B&—-+AMMBAFR, CTA —M TAA HES URE. ARTA, TAMAS Qemu HARMS (E TARTS EB AT) RGA — AAW Linux. Est, TAH DSL Pe R—P Python rT MAGH Ay ah HE, VEAL hetp://www.damnsmalllinux.org/ usb-qemu.html, Dragon 8] 284% T —4* 4845 49927 $44 Python 363%.64 Ubuntu AH. BUAE, OC PEER HOKE LE LMS: © ERA ERR ANE, AIMEE RIN, BRIN: «SHAT RI UEIEFY, 29 Python HiME Ae, (AAEM ICUEAT BE. 1. BR ga Ail Python HAHAH RS . LE— SATA A ERE, RE LES PREF REGS GES. BEL, AEN AT REE CIDE) ZA, TSE ARO, TORS ge ROT 5 RAR A REL. (2 FARA EAE FT AL RAS & DAE BEL. AED, BME ATEAEAL Vim Chtip://svww.vim.org) B Emacs (http://www.gnu.org/software/ emacs). “F—H, CMA MIRA, AW EMDR T REE ME, LEE ER-BMAERBE. Bil, SMSTRAHOZ A, SRMENEE RAMEN. EREUET HOT Python HIBS, AVES Fok a MRA Ee ‘Vim AAT Python SLE AAMIREA, BAL MIR TAR ORR, BTCA JBL Python HET. GIN, FILLE ETE PyCon 2007 ASS) VHA AE Chttps//www. tummy.com/Community/Presentations/vimpython-20070225/vim.html ). 16 147 te Vim RAMRHA, SERMA HY Linux KAPRRRTE, Bs A BREZRRH EL MERE ES. RATHI Vim SRA. WR EM Emacs, WA UAE ER — *F http://www.python.org/emacs. 2. Vim Hyde Fe Vim AIR A TE 7.1, ERK TMS a ae hE SLAG IT AE. WORE Linux PERS, BA ARE CRT RMA Vim, (MICRA REE 7.1 WS. PLB vim -version MOREE MMA S. WRIA T 7.0, ABUL Linux FRB AL EE TF BRAS Pea PEAR DETTE. FESR ERLE, HeBEA Sb BEA Vim. Windows FAs" HEA ERB) — PTT AT A REE. EAMEET evi (—EET PAFE FRA SAS), ERE ET HH APH RAS. IE Mac: OS X AFLP EBERT 7.1 RAC, WER A Se ee, AR Hab il Be ta. #£ http://www.vim.org/download php "PSRHLAIAY IAAI REE EL, JERSE AR MY AE BENT FORET WR TES PS ATS CO EE ATS EI) RSE Pe PE Vim, FRA ie EA configure rit #7_L--enablemultibyte FH. HAE MF Biz. ./configure --enable-multibyte make sudo make install AS, -RefE/usrflocal He FRA Vim, Jeet SAF Jusr/local/bin/vim, BUGEA—e, WRE RARE Linux 3% Mac OS X HERS, WARIER CMAP EH SRP AAG Avimre HIE; MRE FARE Windows BRIE RSE, JMET Ae vires H§SEMCRAEE Vim BUSERESCH IEE, (LAER —74% VIM PREECE BRED, AE Vim AE EA MBPS Vimre SOFAS AAEM Fis. set encoding=ut£8 set paste Bim Rel set expandtab set textwidth=0 set tabstop~4 set softtabstop=4 set shiftwidth=4 set autoindent set backspace=indent,eol, start set incsearch set ignorecase set ruler set wildmenu set commentstring=\ #\ ts set foldlevel=0 set clipboard+=unnamed syntax on ‘PIM, tabstop iT BIE FARE A TSE OHA 4 NE ITE AVin $, FEAR TAM: help PARES HN, ite, A: help rule #4422 FS ruler HAAN HH TH, oH 1.3 Hm. | stains ttn Soom, soo atc 14 I te RR SUE, BAT Vim HOME TERE T » 3. NE ae hee MRAM] Vim BR Emacs, if EAREFASY RRP SRN, FAT PTL TATE ARS, USAT CPA. AREER RET AT Python AYBESL, FRE LT nae. © DL BBE MAMA 4 148 IRE — SEE, FEA S SAR AREA A. RAE MT, MARDEN, RAAT RHP 23 EAT tab FERRI, MTG BCS BERR HA © CRALHNSERE RNA. © TERRAIN, HBAS HPREHIELY BURIET IAL, LA Duta MRR © FORME, ETE AMI B AR R. HEE PAKS Babe HAR. ELRAAH RGAE EM, DHS. RUALARADEN, WTR, Ti APNE SA FAI, Ml APLIER. RARE AeA Mh, ERGE Python 2°. AAT, IU SOWA WMRAM 5 MME EA [S& JoRAM Bak Vim H Emacs, MATRA TMM TRA R ] 4. Fe fl EEE SRA Pe, AN — Ee ERE, WUE LS 28 0 WLR PR © diff, WF GNU diffutils, EMER PHIRI ATA TET Linux S047 /RASAI Mac OS Xf, MERU BER T BIE. 12 Windows “FAH WEA Spe, TC http://gnuwin32.sourceforge.net/packages/diffutils.htm "} F] LL FR AAT. BRM, WATE DOS MAE diff tre T . © grep, THRESH PERE RM OTA. SRALAAL, EMRE Ky EER ARE BSCE 6 bi ALLE PER, 4 Linux Al Mac OS X “Pia ERR UGE GEM. 4E Windows “FG Ab eA, ASAE PP OT VA ZE httpy//enuwin32. sourceforge.net/packages/grep.htm 421, VER, MSYS PEABHT RASTA, 4% Windows +4 FAY grep LA. 1.4.2 (RRMA RAR IDE ‘PERT A GNR ASUS 2 Hb, AT SRB TL. ER A RE 19 Bik RTH AR REET MF Python iff. SERB MIM IDE “4/K Eclipse (http://www.eclipse.org) 45 PyDev Chttp:/pydev.org) HHPFIIEL A CREAN ER BOD BLK YEA —KZ A Wingware 0) 4 HF IDE, waves [ss http:/Avingware.com. Eclipse te A) SAL), EA ME 0B Ce 4 (AT ot BP DUST] A RL. PyDev $2 F144 Eclipse RU“, ASS #8 Python Hite: © RAGA: - SER, © if PyLint fil Bicycle Repair Man Z2EMVARIRIE (QA) TA; © REGAL © RAMA. 2424 PyDev Hitt Eclipse Eclipse 2/9 Java #9851, ALM ACE 28 Java SITS, IRE). MUR Mac OS X, AK IRE C4684 7. ZE Sun (#)/44i http://java.sun.com/javase/downloads/index jsp PATEL Fa Sse TAY TRE. FRIESE, YATRA RB Ae. Eclipse RHPA AREF, WWE RPC He In — 28 Java BAHAY. ABE ‘SR Eclipse, AAR FR NEM, RIGA RA PHIM. WIG, iH Eclipse JF SE PE OR A RE A I Le OS ESBS LH Eclipse RAS FT READ LEH EA IEE. Hades S e LD APA ER — } 5E SL cclipse 49 JOA. SAAR STEER Python MUS} RAS, ANH] DALE AEE EAR OE — 40-¥ http://ondemand.yoxos.com/geteclipse/W4TDelegate fH) Yoxos #t#ET AJAX 22% FESRT Bon. EAMG, LURE CM, ERR RE RT PRAY FRB. WR PyDev HORT, ME, VSIA EAE. URINE BY, JCROBSUA ES RA. a. Meitids 488) Download (FAR) HAIR ARE PAE INEGI, MOE 1.4 Bias. PRR TS LEAT DK, BLOM, ZE Windows 5F 4 41453 92 EE 3 c:\Program Files\Eclipse Rk, fe Linux 8 Mac OS X RAHI B A EARS. ERP, SRI MEM BAMA OR, WF 1S BAR. Ek, BLWMEIE AT Eclipse ME 20 14 L fe tT. aaa Goines Soman. | sine Fe | eaten fale Se a tna i poe orem mane tt ia) Dtepmenwsngmem RTE mate Resource = runflakes py = Eclipse Platform ~ Users [evade Docursets workspace + IGi Girt Oe oe 0/2 nantes odef checkCcode_string, file erences 2 cade strine™ += Fatacheche = Checer Cyaen) © ermee 2 creo = conpterporseCcode string) 2 rane ‘SSneentrror,,Insentottontrrar) wate = ayeleneinfoCQE1] Vine) » vote] erry “coutd not compite S*# (Filename, 1 necendanichen") Mines Uivels 3 = FlatechackerCeren, Filename) Ibeeceger torsClonaae 2, by ene. Lina forecteg b comma Print marning messages) dat check pathcFiLenane b.tinenod) 24 Him RRL 1.5 aj 4 ARIAT 4 TAMAR, ME ita © Python M2479 Python AMAA, BLATHER ATE F CPython. HAL 8¢e Linux, Mac OS X 4 Windows Ff 1. IL GEW Sa PBUH RR, fH EC REAE AN SBE ti SE AE NH, © setuptools fH)zexe 77% BEER Python, iA EAB setuptools. © seid S47 Python HAT —P RRR eT, ERTL A aA CE fh. FES CRT DEM CS, AL EAT RL Be RET © TERR Mem OTM EH, RAR ALM PAA: co RUNGE, Wl Vim, Emacs, tH B29 Python (UGE CACHE BES I BERG. ARR SS iE HAT AGORA IE. 0 LAT FEAR Hae AL PD BE IS TT REPS. Eclipse # PyDev AYA BUTE Fete. PRS U ER IRF RR EER « 2 « WEI EER 1KTRR LBB ASABE, PRORERR A EUR a TE a EY AAS EES AU, MOA TASS > AB ELIOT. BT SRM, REP RPORM ZS, SEREDO ERR. He RE REET WRN RAR ALAM APL AMMAR ARM or BBL RE Python FERTILE AT T BAIR, ORV SHEER BITE. SERRA BMRA CER 2.6), BAA T RABE, Python Pa G RM. Bi. BTS. Python SARA, AEA KIL A TRS AHR ABN AIRE P REBAR, UR CMMI, tdi © 54H: CList comprehensions); © G&(RAF iterators) #4: RRA (generators); © 48187 (Descriptors) AJAYE (properties); + Bet (Decorators); © contextlib. [So tet. sana sasies 24. ] SORE PA EA HEI HG BEE Python AAAI, WBA TOM 3 PL EBS: ° OTT PBA: © 7€844E Chttpy//docs.python.org/tut/tut.html): © PESQIHAY Chttp:/\www.python.org/dev/peps/pep-0008) B2R BARELR—ETRA 21 RES SERRE SAY. >>> numbers = range (10) >>> size = len (numbers) >>> evens = [] >> iso >>> while i < size: afi4a2 2 evens. append (i) ited >>> evens [0, 2, 4 6, 8) RY CHATTER T4719, (EIR TE Python PE BASES HALE SA TELE NG T Bay: © CARRERE TEE OP AEE IE RP HO — BSE © EGA ai it — Ht ER ER RTO List comprehensions 2M FM IEW, “CAB HEF MO PER HRA TRIE ik — MART T ABE, OR DTA. >>> [4 for i in range(10) if i § 2 == 0) [0, 2, 4, 6, 8) AREER T ML, EG, WATERED, ARAMA, Bae RATS ALIGRAE >, RISA I EASE Python Dri A409 3 —‘S 2 fo FEIT] enumerate . 37S PA EPR Me CER PL PE PURE T EAR Ak, GN FI Mee >> i= 0 >>> seq = [Yone", "two", "three"] >>> for element in seq: seqli] = ‘td: #8' % (i, seq{il) ita 24 22 seRaRADA RAE >>> seq ['0: one’, "1: two', ‘2: three") ELA ELAR UA Ff REMI OTR AR ES >>> seq = ["one", "two", “three"] >>> for i, element in enumerate (seq): seqli] = "Sd: $s" § (4, seq{il) >>> seq ['0: one’, ‘1: two', ‘2: three") YSJa» M68 LLE—4> List comprehensions 4004 in F . >>> def treatment (pos, element): return ‘4d: %5' @ (pos, element} >>> seq = ["one", "two", "three") >>> [treatment (i, el) for i, el in enumerate(seq) ] ['0: one", ‘1: two", '2: three"] Seis JENA RES BR, LY ESET RPP A A Ra Python RUBBER BHA? Python Wag 6h 8d 8 APR ol RGIRA RA IE. ALI Ta We fk REA OY GAA StL, MRAP, to RAAT EES RE IRA Python #4) SH, EatARiA#Z Python 4 (Phthonic) 4, AIFPRALBEP, ABA MRA RA RARE TAR. BSAA P ABR TEAL, MRAZ AM List & wl at [se RREE. 2.2 EREMEME PERERA FP SLAC EMR. CET ATT IE 25 2H AREA —HETAR eo onext AS FM: ° _iter BELA RBAR, SRR iter ABER, al. >>> i = iter('abo') >>> i-next () rae o> isnext () tpt >>> ienext () vat >>> isnext () Traceback (most recent call last): File "", line 1, in StopIteration “ARAB ZEN, HEL —AS Stoplteration Sf. ROMER SARIS, BOWEN FMEA TM UE ILGR, ROR INARA, TDL LA next WI, FLBE BARRIER CRAIN _iter_ SPRITES. 26 >>> class MyIterator (object): def _init_(self, step): self.step = step def next (self): "Returns the next element.""" if self.step == 0: raise Stopiteration self.step -= 1 return self.step def _iter (self): “Returns the iterator itself.""" return self >>> for el in MyIterator (4): print el 2.2 eA aa AREA RIE VRB ABC, CRP LA EAT. LL EA a VERE T 22.1 AEE AA Python 2.2 £8, ARBEIT A EMA, AE BE EI— KUTCH EN BOT ROSE IAA. HA. TEP yield HS, ATL — PBK Al PR. RRB RTE PAT HSE SE EL] EAE Be PR 6 BIN GRE PEP PAPERS), Fibonacci BFA AERA, OF PAR. >>> def fibonacci(): ay b= 0,2 while True: yield b a, b= b, atb >>> fib = fibonacci () >>> fib. next () 2 >>> fib.next () 2 >>> ftib.next() 2 >>> [fib-next() for i in range(10)] (3, 5, 8, 13, 21, 94, 55, 89, 144, 233) BORNE — “MERIC, BEE generator MR, “EARL RAEDUT EME. at ENOL AIRE, RABE FRA PER. BORA, SCR MAROE COPS PLATE. ROME OHRTRANTOT A HOTT. SCOR I, FAIL RRS RLEH VERA, 7 PEP 4X2 Python 2i3&siX (Python Enhancement Proposal). '& NS Python Lit (piri 4, RRA AGLMAEM ARR. 3-H 0418 & B Lhttp://www python.org/dev/peps/pep-0001. 27 2H WARE TR—RFAR TA RAAP, ERISA HD, ATER ARORA A. PRA RE AAP EER. SEA RE AT RT. AREAL. ROM TRE Ae eB 1B Rh RET RADI, RIB HERE RE ERE ATE AE. TSAR FP, APACE ES A, TPT AGAR REE Fiat, URES IRE. GFW, Fibonacci HFVEEIVRIN, CREDA PRE BI SR REAR FE ERE —- MAIS, BRIE FETS ONE. LN FS SA FRAC aR TCR OP 5 AA LRH SS Te EP HT A SAREE IX EZ WBA. UU, Ok EPRMEREAF HEN tokenize SURIETEXAZ MEMS HE, He FLEb art ebsei f ABE —(SE. ATCA), RB >>> import tokenize >>> reader = open('amina.py').next. >>> tokens = tokenize.generate_tokens (reader) >>> tokens next () (1, 'érom', (1, 0), (1, 4), ‘from amina.quality import similarities\n') >>> tokens. next () (1, tamina', (1, 5), (2, 10), ‘from amina.quality import similarities\n') >>> tokens. next () TEBE EL, open BSG T CAEP REET i generate_tokens RIZE —/M ERE EA SUTEU, 56 — AERO LIE. AE RCA NT MEAGRE SL AREAL A PD, EBL ARIE ART & 4} PR Me HE TEESE TERE, RENAE TI eH, ASR MO WEA. HBA. A TTBARNG AE AN: TEL, RT DLS} hag Gt 9 EFAS IP EO LES bie XA PR EATER. A UAE — PC RIE ATER, WR BAR >>> def power (values) : for value in values: print ‘powering %s' % value yield value >>> def adder (values) : 28 2.2 ERB MERS for value in values: print ‘adding to %s' & value if value 42 = 0 yield value + 3 else: yield value + 2 >>> elements = [1, 4, 7, 9, 12, 19) >>> res = adder (power (elements) } >>> res next () powering 1 adding to 1 3 >>> res next () powering 4 adding to 4 7 >o> res.next () powering 7 adding to 7 3 RRB, HERE 8 PAHS HR GL BRIA TARR, Kre—AK Ae. It MELt Bak BAF — Python 9A ff 4: na ICSE MP EEE T 5 next Fy PH AU RET SE Ble. yield HAM-A, MEAT GEE % W send MTR. MF TAS. >>> def psychologist (): print 'Please tell me your problems’ while True: answer = (yield) if answer is not None: Af answer.endswith('?"): print ("Don't ask yourself BQ AREAS CRESS ARE ITT A. II, ZBYSINT throw Ail close BiH, UW "too much questions") elif 'good' in answer: Print "A that's good, go on™ elif "bad" in answe: print "Don't be so negative" >>> free = psychologist () >>> free.next () Please tell me your problems >>> free.send('I feel bad") Don't be so negative >>> free.send("Why I shouldn't 2") Don't ask yourself too much questions >>> free.send("ok then i should find what is good for me") A that's good, go on send BYL/EHLAS next —FE, (HIE yield ER AEHIE EME AMIE. BIT TEIMIBAT A » CATTERY MR 30 © throw FFE FBLC fe A BEB A ME fm A SE © close AIL PEAT ACA AA FIEND, 15S i ti RE AF 98 —GeneratorExit, EIRP WELK, Ene RL PE eH GeneratorExit 3% Stoplteration #¥. Paiste, 7S S20 AE RAR RE LaF has >>> def my generator (): try: yield something" except ValueBrror: yield ‘dealing with the exception’ finally: print “ok let's clean" >>> gen = my_generator() >>> gen-next () "something! >>> gen. throw (ValueError('mean mean mean')) ‘dealing with the exception’ >>> gen.close() 2.2 seARRAIE RR ok let's clean >>> gen.next () Traceback (most recent call last): File "", line 1, in Stopiteration finally #B4Y-CEZ AU AIRC RAS YF US AN, ERE RAT TAS BAMSR I close #01 throw if J, Fee (PRO SR. GeneratorExit ACERT ETI, A EE PRR close BULA IE MIB. MURATA SARTRE, DRIP HA RSP AT RIMINI, BATTER EARS BFE Ccoroutine). 2.2.2 YNaRER DARE TT te, PL, SAAS TULA ARAL. AA A AEE T NS YE, tM To Chttp:/iolanguage.com) #! Lua Chttp:/www.lua.org), ‘ETAT USE RA pple A BES AMSTEL. lio. E-MAILS ee. ¢E Python}, OMAR, CATS eT. (AL eT FRM PHONG, TDA PEEL, TO LREAR AN AGSE. ROPERS RHT TY EAE AS AAAS, WELLAURRANIR. (RE RAR IL PRUE ALE, B80 send, throw Al close, Ht WUE AE WTA Be — PR OL I HE PEP 342 (http:/Avww.python.org/dev/peps/pep-0342) SEPI{e TEMA MMT, tee T ‘ala Ds BR EP SENET. LEC Trampoline, 8] LUBE PEA RADIA Bt BRAUN ADPEAR ZURIAGR SY “EA — PB dP EE i © PyPI ‘PEN multitask #4 (FA easy_install multitask 24%) SBT IA— Bist, Rt Ath, MP BAR. >>> import multitask >>> import time >>> def coroutine 1(): for i in range(3): print ‘cl’ yield i >>> def coroutine 2(): for i in range(3): 31 Mle BARE TR ETAR print '¢2' yield 4 >>> multitask. add (coroutine_1()) >>> multitask.add (coroutine_2()) >>> multitask. run() el 2 el 2 el 2 EDIE CMOUME, RAROWT RR RAS MEM nui, IEE MHZ Sx NACH MALO TRL NCAA. BE ANY RAR ICIDLIK BEL, PV BESE'S ARRAN LEETE CRI), CLM ERODE CEU). SYN DSUEREZE trampoline “4H — NE OH multitask © Ay $5487 ALE (40 echo IRIS) HUET AMEN APL, JE MARIA, oF itm. from _future_ import with statement from contextlib import closing import socket import multitask def client_handler (sock): with closing(sock) : while True: data = (yield multitask.recv(sock, 1024)) Af not data: break yield multitask.send(sock, data) def echo_server(hostname, port): addrinfo = socket.getaddrinfo(hostname, port, socket AP UNSPEC, Socket .SOCK STREAM) (family, socktype, proto, canonname, sockaddr) = addrinfo[0] with clesing(socket. socket (family, if [se 22 socktype, proto)) as sock: sock. setsockopt (socket .SOL_SOCKET, socket.SO_REUSEADDR, 1) sock-bind (sockaddr) sock. listen (5) while True: multitask.add(client_handler(( yield multitask.accept (sock) ) [0])) name import sys hostname = None port = 1111 if len(sys.argv) > 1: hostname = sys-argv(1] if len(sys.argv) > 2: port = int (sys.argv[2]) multitask.add(echo_server (hostname, port)) try: multitask. run () except Keyboardinterrupt: pase AEA SAB contextlib. S-HAAEFLR sea greenlet RAAB A, EHF EL—RAA Python MAB ET — MRA ER. 2.2.3 Apbes earl Python y $5 Ft H/F 29 i) EAE CAR SEE TPE A. BY LAF Bp RD RHE 18) THVORACE yield. 7hit, UNBHESREHES, aK ita. 33 2H WARELR—MPAB >>> iter = (x*#2 for x in range(10) if x 2 == 0) >>> for el in iter: print el RERUN BE RARACATORR genexp. EAH AACHEN SLD T PER) AURIS ASHE. CT AU RATA RAR PE, AEC — TGR. ATL EU SPE, RAAT. SENZE yield RSL LOLA ALUINMEREY, MRR, BUR AP AOR AEC IFES. 2.2.4 itertools #IR % Python PRINTER, BOWS ILRI T — MEHR, DW PELL C ARS, PT AAMC, itertools Hii THF SARSL, (LALATRERYDE islice, tee All groupby. 1, islice: Brite islice #548 [E]—NEAT EP IUN FAAS LOREAL SC HEREAT AER A TEI fi, PACE S TIMAMSTOR, RAT RRB 4+, KBR. >>> import itertools >>> def starting at_five(): value = raw_input().etrip() while value != 11: for el in itertools.islice(value. split (), 4, None): yield el value = raw_input () strip() >>> iter = starting at_five() >>> iter-next () one two three four five six 2.2 RARE RS '£ive! pop iter-next () ‘six! >>> iter.next () one two one two three four five six "five! >>> iter-next () ‘eix! >>> iter-next () one one two three four five six seven eight ‘Eive! >o> iter-next () >>> iter.next () "seven" >>> iter.next () ‘eight’ SME RTE ERT, A) LARA islice. Ii, ARBRE ACR AYR FeSO, BOIL TOMUE (in SOAP HE) PPAR. ZEADPAUL F, islice FY LAA fete NTE 2 Ea Oe 2. tee: FEB AM BARE RIE, EASE. tee HEAT TEENS TE ARABS. SEHR UIT, BRABUS AP RTT. li, ASCE AACS TY VERE AT EZ EE a PTA >>> import itertools >>> def with head(iterable, headsize=1): a, b = itertools.tee(iterable) return list (itertools.islice(a, headsize)), b >>> with_head(seq) ({1], ) >>> with head(seq, 4) (11, 2, 3, 4], ) B2R PAMERR— EAS TERRA BECH, SRF] tee ERP TERE, BAI —SA CBE HL islice SURREAL A 7 headsize 703%. JPRVEATHE 2 —/M HSH FPO, NFB LY TERE MARE, ATLA TREE PAIS b 3. groupby: unig #4+t2e ABT AUR Unix 4 unig. CATA CEE TERME, Fue EAVEARABM, EAT — SHORTER LER. FM, HORI, groupby 1 LAUT HERES TS (RLE) ERASE. SREB PALA SS HELE ERAS OAS SUR, URE, WUE 1. Pili: get vumumuueuuuunaup: FEW: iglelt1 8uip AUF groupby K3UK RLE, RMBILITUG, WFR. >>> from itertools import groupby >>> def compress (data): return ((len (list (group)), name) for name, group in groupby(data)) >>> def decompress (data) : return (car * size for size, car in data) pe> List (compress (*get uuuuuuuuzauuuuvuuep")) [Qs ta"), , fe"), @, "89, G6), (18, "a, (1, *p'y] >>> compressed = compress('get uuuuuuuuuuuuueuuup') >>> '' join (decompress (compressed) ) "get uuuusuuuuuuuuuuuup" EMRE FoR BHR AA, TAA ELZ77 Pik. CA RLEHMRMA, HER FARA AEA, Fo ARRAN MF (https/en. wikipedia.org/wiki/LZ77 ). 23 8 th # SEES bre —MA MIR, AAT LUE groupty. ixIY IR, ABEIM sorted SOAR AHH, HILAR A HOR PAROS. 4, Fe fh Ba ZEhttp://docs.python.org/lib/itertools-functions.html F, FTL itertools AMT, 4 AT PAR M. ET RBI DLS Python 651, BLASER. * chain(*iterables) QJ #—SZEB— TATE S LIER, MME — A, VU SHE. © count({n]) JIE] HERRERA, BANE. SAH nt, EMO Fit. © cycle(iterable) ZEMAN TRMETTRZ HER, RAMI. AMAA. © dropwhile(predicate, iterable) AEWA (predicate) HA, REM AREAS IR AE ATER. ABT AUN MUSH IA HIE * ifilter(predicate, iterable) (D1 A teh Ht filter. © ifilterfalse(predicate, iterable) 9 ifilter S{L, (EU HFZEWT eS AR DATION. © imap(function, *iterables) 9 #2839 map A, ALES TAM RET IE, FERRITE BORIS BD HGF AE © izip(*iterables) Al zip 34D, AWE HIRE]. © repeat(object[, times]) iRIEI—3K (N88, BRAS TERE ALINGEIB] object. i247 times 1K, MURA times WWE ATIC. © starmap(function, iterable) #! imap fl, AMCHHEAIA REALS SH function {£38 XVEWRILIG HAL 7641 tuples) MATE, ERLE Wy BB functions + takewhile(predicate, iterable) AFIS (UTRIRIPICH, “4 predicate IKIABIN EAE. 23 32 ti ASH ALALZE Python 2.4 PRMAM, ERG RAAM BENE Blk —MEBE ait PRAHA oR Be) SEAS AA SC PTS ALT AG Ya A SH DRAERMSTE. TMB ZA, AUMANIEEM TE >>> class whatFor (object) : def it(cls): print ‘work with 4s' & cls 37 B 2 ARERR —MRFRR it = classmethod(it) def uncommon (): print 'I could be a global function’ uncommon = staticmethod (uncommon) WRARK, RETR AS MEN, BONEYARD Dok. TOT RZ a, ITER LSS til, GF BER. >>> class WhatFor (object) : @classmethod def it (cls): print 'work with ts’ % cls @staticmethod def uncommon () : ms print ‘I could be a global function’ >>> this is = WhatFor() >>> this is.it() work with >>> this_is.uncommon () I could be a global function ART NZ ia, AREER SR CAL, Se ASCO SEM TH Sh LP Aad SPIE AM A = hy TromPython {FF 3% Jim Hugunin #14 /19, $08 2.1 frase 38 i @-o- SG ‘ = Doma Cinetand fl weaerieas [i eecencn Tl wae ae [Python-Dev] PEP 318: More examples of decorator use i Hg isotype Tue Apr 6 18:08:54 BOT 2006 + Previous message es Prton Tare Bthon-Dev Paton are: Grose + New menage: [Evhen-Devl PEP 318 More expe of decorate te ‘+ Moseages sorte by [te [tread | Leet | Lash] Nevertheieaa, I thisk any Innguage design sisouasion can besefie fom nore exarples, Here's a list of ways that I would wee deesrazore, in my Pytion 2a 23 % ti ACTF ERAS PSH OO tT a RENEE, HERE ESA 2.3.1 Yfolae'S ties REALLEMBAAS IA, CRM PARA RM MATES TR, JBL 2 RHC — AF TALIBAN. >>> def mydecorator (function): def mydecorator(*args, **kw): + EWA LRG RS MADRE TIE res = function(*args, **kw) 1 RRRLME LL return res + RETER xeturn _mydecorator nF BS “8 Wul_mydecorator ZAKI, TARR wrapper READ AGRE OF LR, Ls Bes AAR 8 $8] BYX—$ Ta TE HE SEER RMR RES Mt, UAH Behe. def mydecorator(argl, arg2): def _mydecorator (function): def _mydecorator(*args, **kw): # EMAKGGRAHRARET HE res = function (varge, **hw + ARMA RT HE return z0s + ROFOK return _nydecorator return _mydecorator Pa et LS — INN RRR A, RATER ICE As TTA AYU FLA SERS . SRAM RE 5 AVN OR TIM ERA wa MR Ib CEA SATS, Mi AHE. ZEAE UE FMR Mia AbI API IY, AMEE ASEH EMT IE— FAT HEP VBE 39 B 2 ELAR ; PM BARRETT HHRY ERG EARL IHR, ARE, B Ss BART EBA A (introspection) 146. SL Be th a a ° Skint: ° Bt, ° Fm, ° LF cbebte. 23.2 BIG KARR ROUEAINSE, CEL PUTA. Glin, t+ eae XML-RPC WAFER, Python #5 fie FURAN PE BAR GEE ROSE REE, . “4 XML-RPC SERB MEAN, PPE BED. XML-RPC #HX XML-RPC HiX.8 AY 42 FH oh SEAS ib 4218 GX, ELM HTTP _E & XML AAANLTEE, CHEATERS? MAS RA PRA SOAP. ‘ # SOAP KF (SOAP AEF MAT TIM Al AA Ka, FP WSDL), XML-RPC £47 Al HSH HR, REMARK ERE TTY R, TANRARIRE BS APL, Python 44 xmirpclib #83 BLK MP AR (AL http://docs.python.org/lib/serverproxy-objects. html). JHA IN, TRAM SEA, MOR BER. >>> from itertools import izip >>> xpe_info = () >>> def xmirpe(in=(), out=(type (None), )) : def _xmirpe (function) : 4 EME fune_name = function, func_name 40 23 8 th xpc_info[func name] = (in_, out) oe: def check types(elements, types): oe """subfunction that checks the types.""" pee if len(elements) != len (types): raise TypeError('argument count is wrong’) Se typed = enumerate(izip(elements, types) = for index, couple in typed: ae arg, ofthe right type = couple i if isinstance(arg, of_the_right_type) + continue raise TypeError('arg #%d should be ts’ % \ (index, of_the_right_type) + Hee ee def _xmirpc(*args) : 6 A CE RE os + EMAAR i checkable_args = args[1:] # removing self & _check_types (checkable_args, in_) . + RAT BM res = function (*args) + EMH AAS if not type(res) in (tuple, list): checkable_res = (res,) else: checkable res = res _check_types(checkable_res, out) + PRRLADH ERY return res ee return _xmlrpe sss Return _xmirpe HR REM AER LAP, HSB AME IRAE TRA. HL, PHC TRAIT, Chass BOR PEAR tH as. DUR LE “MEISE. 4 2m AMET AR >>> class RPCView (object) : @xmlrpe((int, int)) # two int -> None def methi (self, inti, int2): print ‘received #d and $d" % (intl, int2) @xmirpe((str,), (int,)) # string -> int def meth2(self, phrase): print ‘received $s‘ % phrase return 12 BURGE UN, HERS pe_infos #1, IRATE — MPAA. JEL, HEOBRA, MERA. >>> xpc_infos {tmeth2": ((,), (,)), "methi': ((, ), (,))} >>> my = RECView() >>> my.meth1 (1, 2) received 1 and 2 >>> my. meth2 (2) Traceback (most recent call last): File "", line 1, in File "“", line 16, in wrapper File "", line 11, in check types TypeExror: arg #0 should be BRAD Y S IUGR, M128 AL (BIL hep://wiki.python.org/moin/ PythonDecoratorLibrary#thead-308f2b3507ca9 1 800def194813348178db34303e). AT LAAs 5 AY LORD OR GE NS Ph I Be © Amie: ° HRSA, © RASH TypeEror #7. 23.3 BaF BAER EE SS BTRAML, ALE KGET A ORAS TTA a HH AI. AA 42 23 8 te TT LL ERS — MEA. A REET (BIL http:/en.wikipedia. org/wiki/Functional_programming), “44 (247 PRIN AY LAGE. But, APART SHE NS MAE, FLARE aH IBD. AMT BAY Memoizing ($ ILhttp://en.wikipedia.org/wiki/Memoizing, #1 A EE), REAR A— Pe, WIE Sra. >>> import time >>> import hashlib >>> import pickle >>> from itertools import chain >>> cache = {} >>> def is obsolete (entry, duration): return time.time() ~ entry['time']> duration >>> def compute_key(function, args, kw): key = pickle.dumps( (function. func name, args, kw)) return hashlib. shal (key) -hexdigest () >>> def memoize (duration=10) : def _memoize (function): def _memoize(*args, **kw): key = compute_key(function, args, kw) + RECRRAET? if (key in cache and not is_obsolete(cache[key], duration)): print 'we got a winner’ return cache [key] {'value'] +e result = function(*args, **kw) # REBR cache [key] = {'value "time" result, time.time()) return result xeturn _memoize S2e BARELR—GFAR + return _memoize SHA hash S(A (A CADP AYS RRR, BR ORR ECE — A SescP . hash 485 A pickle KRESL, LRAT ATEN SEHR MM BARA, DURRBTA BUH) Ih BLE RE LORE. (It, URAL RE PEE AER, HEIL —7P PicklingError. duration FRUIT LRA, EARLE A EAE, DURE —MERISE BY. >>> @memoize () - def very very very complex stuff(a, b): + DRT S LL, PRE return a + b >>> very very very complex stuft(2, 2) 4 >>> very_very_ very complex stuff(2, 2) We got a winner 4 >>> Gmemoize(1) # 1LHLECREAK + def very very very complex stuff(a, b): return a +b >>> very_very_very complex stuff (2, 2) 4 >>> very very very complex stuff(2, 2) we got a winner 4 >>> cache {'02727£43c6e39b3694649ee0883234c£': {'value': 4, ‘time': 1199734132.7102251) } >>> time. sleep (2) >>> very _very_very complex stuff(2, 2) 4 HER, PR MARA, PLU T SES. CIE T SR PR ACT VL SE a eG ET AAG ATE RE, MELLO. SEEPS ESS, DOCH a A, PMG. EULZECEOERE F, BA 44 23 % ti ® BERBER EF RR ERY TEE, FPR TS td i A ‘Web KYJEFEIF_E. Memeached & Python "Pi Fn) St72 —. [sé R13 EPA RH Ibe 5 RARAA KER. ] 23.4 fe REDE MEA TE LPR EAE. Bln, — AE SR Ra MARAT LE — MEH SAR MBER, MR TA >>> class User (object): def _init_(self, roles): self.roles = roles >>> class Unauthorized (Exception) pass >p> def protect (role): soe def protect (function): def _protect (*args, **kw): user = globals().get ('user') if user is None or role not in user.roles: raise Unauthorized("I won't tell you") return function (*args, **kw) return _protect return protect RASCH MALT Python Web HE, FAKE EPMA RAPA RAHE. fal, Django HEGRE th ACRE BCU DURES, RT BER AR LEAN RE 6 SB RE Dy YS TS , MK ita. >>> tarek = User(('admin', 'user')) >>> bill = User((*user',)) >>> class MySecrets (object) : 45 2H ARERR @protect ("admin") def waffle_recipe (self): print ‘use tons of butter!" >>> these_are = MySecrets() >>> user = tarek >>> these_are.waffle_recipe() use tons of butter! >>> user = bill >>> these_are.waffle recipe() Traceback (most recent call last): File "", line 1, in File "", line 7, in wrap —main_.Unauthorized: I won't tell you 23.5 LE Rode LP Se Be to FE CR SET DL a ee EA Ch Bea eR BT ef, RA, CADRES He MATA. Gin. 4 —- MEE SRR ESN, SHE MID OMRE HES RU SRP. RMT DEES, ata mre >>> from threading import RLock >>> lock = RLock() >>> def synchronized(function) : def _synchronized(*args, **kw): lock. acquire () try: return function(*args, **kw) finally: lock. release () return _synchronized >>> Glocker def thread safe(): # make sure it locks the resource pass

You might also like