學(xué)好Python必讀的幾篇文章
作為腳本語(yǔ)言Python上手容易,但要學(xué)好Python能寫出一手漂亮的、Pythonic的Python代碼并非一日之功,本文的目的在于推薦一些優(yōu)秀的Python相關(guān)的文章(至于書大家可以看dip、learning python和官方手冊(cè)去),讓你在成長(zhǎng)為一名Python高手的路上少走一點(diǎn)彎路。注:文章都是英文的,學(xué)好Python讀懂英文資料這是必須的了。
1. PEP8 Style Guide for Python Code
排***的當(dāng)屬Python的編碼規(guī)范PEP8,這個(gè)就不用我多說(shuō)吧,無(wú)論是初學(xué)還是高手PEP8都是必須爛熟于胸的。在遵循里面講述的規(guī)則的同時(shí),大家也要記住兩句比較特殊的話,不過(guò)這兩句話千萬(wàn)別濫用了:)
Two good reasons to break a particular rule:
(1) When applying the rule would make the code less readable, even for
someone who is used to reading code that follows the rules.
(2) To be consistent with surrounding code that also breaks it (maybe for
historic reasons) -- although this is also an opportunity to clean up
someone else's mess (in true XP style).
如果要寫Python的C擴(kuò)展庫(kù),你還必須好好學(xué)習(xí)下PEP7。
2. Code Like a Pythonista: Idiomatic Python
文如其名,本文篇幅較長(zhǎng),但非常非常實(shí)用。本文介紹了一系列Python約定俗成的用法和技巧,學(xué)習(xí)本文能讓你寫出來(lái)的Python代碼馬上上一個(gè)檔次,讓你成為一個(gè)真正的Pythoneer。
3. PEP318 Decorators for Functions and Methods
在Python的世界里decorator是非常常見(jiàn)的,常見(jiàn)的比如auth、cache都會(huì)提供decorator,decorator所實(shí)現(xiàn)的功能就是修改緊接 decorator之后定義的函數(shù)和方法,你可以根據(jù)自己的需要給一個(gè)已有的函數(shù)和方法添油加醋。
4. Python regular expression documentation
掌握正則表達(dá)式是編程人員的必備技能,這是re模塊的官方文檔,用到正則表達(dá)式的時(shí)候要常來(lái)翻翻。Python的正則表達(dá)式跟別的語(yǔ)言函數(shù)用法有點(diǎn) 不一樣,因此也有人抱怨說(shuō)Python的re模塊不好用,文章開(kāi)頭關(guān)于正則表達(dá)式規(guī)則部分可以當(dāng)正則表達(dá)式的入門教材,如果你還不知道正則表達(dá)式是個(gè)什么 東西的話。個(gè)人覺(jué)得Python的re模塊非常強(qiáng)大的,舉個(gè)有點(diǎn)意思的例子,比如VERBOSE的正則表達(dá)式還支持在正則表達(dá)式中間加注釋說(shuō)明正則表達(dá)式 的具體含義,因?yàn)檎齽t表達(dá)式通常都象天書一樣比較難懂,因此這個(gè)功能顯得非常有用。
a = re.compile(r"""\d + # the integral part
\. # the decimal point
\d * # some fractional digits""", re.X)
5. PEP333 Python Web Server Gateway Interface v1.0
如果你要用Python來(lái)做Web相關(guān)的開(kāi)發(fā)(對(duì)大多說(shuō)人來(lái)說(shuō)主要就是指Web運(yùn)用)WSGI是必讀的,WSGI是Python web server、application、middleware之間的官方規(guī)范標(biāo)準(zhǔn),現(xiàn)在主流的Python web server和framework都肯定支持WSGI的。只有了解了WSGI你才能更好的理解Python的web framework的工作機(jī)制、middleware為啥可以串聯(lián)起來(lái)、web server是怎么跟web application交互的。WSGI有兩個(gè)為人詬病的地方,一是不支持異步,Tornado是一個(gè)異步的Web server,但是若要在上面運(yùn)行WSGI的framework如Django,則Tornado的異步特性完全用不上;二是WSGI v1.0不支持Python3.x,為了支持Python3.x,有兩篇還在Draft狀態(tài)的PEP文檔PEP3333和PEP444可供參考。
6. How To Use Linux epoll with Python
更深入一點(diǎn),如果你要做服務(wù)器端的編程的話,此文可以讓你深入理解Python的同步、異步socket編程模式。假如你覺(jué)得Tornado的源碼比較費(fèi)解的話,讀讀這篇文章對(duì)你會(huì)很有大的幫助。
7.另外還有一些比較重要的文檔,這里不做詳解,有興趣的同學(xué)可以去看看:
待補(bǔ)充..,歡迎大家推薦。
http://feilong.me/2011/01/recommended-entries-for-you-to-master-python
【編輯推薦】