首 頁
手機(jī)版

Effective Python:編寫高質(zhì)量python代碼的59個(gè)有效方法 pdf掃描版

Effective Python:編寫高質(zhì)量python代碼的59個(gè)有效方法是一本python編輯手冊,由美國程序員布雷特·斯拉特金編著。本書以使用場景為主導(dǎo)的精練教學(xué)方式,匯聚了59條優(yōu)秀的實(shí)踐原則、開發(fā)技巧和便捷方案,并以實(shí)用的代碼范例來解釋它們。其核心內(nèi)容包括涵蓋Python 3.x及Python 2.x主要應(yīng)用領(lǐng)域的實(shí)用指南、如何準(zhǔn)確地表達(dá)類與對(duì)象的行為、更為高效的并發(fā)及并行方式、與Python內(nèi)置模塊相關(guān)的編程技巧和習(xí)慣用法、多人協(xié)作時(shí)所用的開發(fā)工具和實(shí)踐方式等等,通過學(xué)習(xí),讀者可以了解到解決關(guān)鍵編程任務(wù)所用的佳方式,并學(xué)會(huì)編寫易于理解、便于維護(hù)且利于改進(jìn)的代碼,歡迎免費(fèi)下載閱讀。

內(nèi)容介紹

《Effective Python:編寫高質(zhì)量python代碼的59個(gè)有效方法》涵蓋的內(nèi)容本書每一章都包含許多互相關(guān)聯(lián)的條目,大家可以按照自己的需要,隨意閱讀這些條目。每個(gè)條目都包含簡明而具體的教程,告訴你應(yīng)該如何更高效地編寫Python程序。筆者在每個(gè)條目里面都給出了建議,告訴大家應(yīng)該怎樣做、應(yīng)該避免哪些用法,以及如何在各種做法之間求得平衡,并解釋了筆者所選的做法好在哪里。

本書中的各項(xiàng)條目,適用于Python 3和Python 2(請(qǐng)參閱本書第1條)。對(duì)于Jython、IronPython或PyPy等其他運(yùn)行時(shí)環(huán)境,大部分條目應(yīng)該同樣適用。

第1章:用Pythonic方式來思考Python開發(fā)者用Pythonic這個(gè)形容詞來描述具有特定風(fēng)格的代碼。這種風(fēng)格是大家在使用Python語言進(jìn)行編程并相互協(xié)作的過程中逐漸形成的習(xí)慣。本章講解如何以該風(fēng)格來完成常見的Python編程工作。

第2章:函數(shù)Python中的函數(shù)具備多種特性,這可以簡化編程工作。Python函數(shù)的某些性質(zhì)與其他編程語言中的函數(shù)相似,但也有些性質(zhì)是Python獨(dú)有的。本章介紹如何用函數(shù)來表達(dá)意圖、提升可復(fù)用程度,并減少bug。

第3章:類與繼承Python是面向?qū)ο蟮恼Z言。用Python編程時(shí),通常需要編寫新類,并定義這些類應(yīng)該如何通過其接口及繼承體系與外界相交互。本章講解如何使用類和繼承來表達(dá)對(duì)象所應(yīng)具備的行為。

第4章:元類及屬性元類(metaclass)及動(dòng)態(tài)屬性(dynamic attribute)都是很強(qiáng)大的Python特性,然而它們也可能導(dǎo)致極其古怪、極其突然的行為。本章講解這些機(jī)制的常見用法,以確保讀者寫出來的代碼符合最小驚訝原則(rule of least surprise)。

第5章:并發(fā)及并行用Python很容易就能寫出并發(fā)程序,這種程序可以在同一時(shí)間做許多件不同的事情。我們也可以通過系統(tǒng)調(diào)用、子進(jìn)程(subprocess)及C語言擴(kuò)展來實(shí)現(xiàn)并行處理。本章講解如何在不同情況下充分利用這些Python特性。

第6章:內(nèi)置模塊Python預(yù)裝了許多寫程序時(shí)會(huì)用到的重要模塊。這些標(biāo)準(zhǔn)軟件包與通常意義上的Python語言聯(lián)系得非常緊密,我們可以將其當(dāng)成語言規(guī)范的一部分。本章將會(huì)講解基本的內(nèi)置模塊。

第7章:協(xié)作開發(fā)如果許多人要開發(fā)同一個(gè)Python程序,那就得仔細(xì)商量代碼的寫法了。即便你是一個(gè)人開發(fā),也需要理解其他人所寫的模塊。本章講解多人協(xié)作開發(fā)Python程序時(shí)所用的標(biāo)準(zhǔn)工具及最佳做法。

第8章:部署Python提供了一些工具,使我們可以把軟件部署到不同的環(huán)境中。它也提供了一些模塊,令開發(fā)者可以把程序編寫得更加健壯。本章講解如何使用Python調(diào)試、優(yōu)化并測試程序,以提升其質(zhì)量與性能。

effective python章節(jié)目錄

本書贊譽(yù)
譯者序
前  言
致  謝
第1章 用Pythonic方式來思考 1
第1條:確認(rèn)自己所用的Python版本 1
第2條:遵循PEP 8風(fēng)格指南 3
第3條:了解bytes、str與unicode的區(qū)別 5
第4條:用輔助函數(shù)來取代復(fù)雜的表達(dá)式 8
第5條:了解切割序列的辦法 10
第6條:在單次切片操作內(nèi),不要同時(shí)指定start、end和stride 13
第7條:用列表推導(dǎo)來取代map和f?ilter 15
第8條:不要使用含有兩個(gè)以上表達(dá)式的列表推導(dǎo) 16
第9條:用生成器表達(dá)式來改寫數(shù)據(jù)量較大的列表推導(dǎo) 18
第10條:盡量用enumerate取代range 20
第11條:用zip函數(shù)同時(shí)遍歷兩個(gè)迭代器 21
第12條:不要在for和while循環(huán)后面寫else塊 23
第13條:合理利用try/except/else/f?inally結(jié)構(gòu)中的每個(gè)代碼塊 25
第2章 函數(shù) 28
第14條:盡量用異常來表示特殊情況,而不要返回None 28
第15條:了解如何在閉包里使用外圍作用域中的變量 30
第16條:考慮用生成器來改寫直接返回列表的函數(shù) 35
第17條:在參數(shù)上面迭代時(shí),要多加小心 37
第18條:用數(shù)量可變的位置參數(shù)減少視覺雜訊 41
第19條:用關(guān)鍵字參數(shù)來表達(dá)可選的行為 43
第20條:用None和文檔字符串來描述具有動(dòng)態(tài)默認(rèn)值的參數(shù) 46
第21條:用只能以關(guān)鍵字形式指定的參數(shù)來確保代碼明晰 49
第3章 類與繼承 53
第22條:盡量用輔助類來維護(hù)程序的狀態(tài),而不要用字典和元組 53
第23條:簡單的接口應(yīng)該接受函數(shù),而不是類的實(shí)例 58
第24條:以@classmethod形式的多態(tài)去通用地構(gòu)建對(duì)象 62
第25條:用super初始化父類 67
第26條:只在使用Mix-in組件制作工具類時(shí)進(jìn)行多重繼承 71
第27條:多用public屬性,少用private屬性 75
第28條:繼承collections.abc以實(shí)現(xiàn)自定義的容器類型 79
第4章 元類及屬性 84
第29條:用純屬性取代get和set方法 84
第30條:考慮用@property來代替屬性重構(gòu) 88
第31條:用描述符來改寫需要復(fù)用的@property方法 92
第32條:用__getattr__、__getattribute__和__setattr__實(shí)現(xiàn)按需生成的屬性 97
第33條:用元類來驗(yàn)證子類 102
第34條:用元類來注冊子類 104
第35條:用元類來注解類的屬性 108
第5章 并發(fā)及并行 112
第36條:用subprocess模塊來管理子進(jìn)程 113
第37條:可以用線程來執(zhí)行阻塞式I/O,但不要用它做平行計(jì)算 117
第38條:在線程中使用Lock來防止數(shù)據(jù)競爭 121
第39條:用Queue來協(xié)調(diào)各線程之間的工作 124
第40條:考慮用協(xié)程來并發(fā)地運(yùn)行多個(gè)函數(shù) 131
第41條:考慮用concurrent.futures來實(shí)現(xiàn)真正的平行計(jì)算 141
第6章 內(nèi)置模塊 145
第42條:用functools.wraps定義函數(shù)修飾器 145
第43條:考慮以contextlib和with語句來改寫可復(fù)用的try/f?inally代碼 148
第44條:用copyreg實(shí)現(xiàn)可靠的pickle操作 151
第45條:應(yīng)該用datetime模塊來處理本地時(shí)間,而不是用time模塊 157
第46條:使用內(nèi)置算法與數(shù)據(jù)結(jié)構(gòu) 161
第47條:在重視精確度的場合,應(yīng)該使用decimal 166
第48條:學(xué)會(huì)安裝由Python開發(fā)者社區(qū)所構(gòu)建的模塊 168
第7章 協(xié)作開發(fā) 170
第49條:為每個(gè)函數(shù)、類和模塊編寫文檔字符串 170
第50條:用包來安排模塊,并提供穩(wěn)固的API 174
第51條:為自編的模塊定義根異常,以便將調(diào)用者與API相隔離 179
第52條:用適當(dāng)?shù)姆绞酱蚱蒲h(huán)依賴關(guān)系 182
第53條:用虛擬環(huán)境隔離項(xiàng)目,并重建其依賴關(guān)系 187
第8章 部署 193
第54條:考慮用模塊級(jí)別的代碼來配置不同的部署環(huán)境 193
第55條:通過repr字符串來輸出調(diào)試信息 195
第56條:用unittest來測試全部代碼 198
第57條:考慮用pdb實(shí)現(xiàn)交互調(diào)試 201
第58條:先分析性能,然后再優(yōu)化 203
第59條:用tracemalloc來掌握內(nèi)存的使用及泄漏情況 208

使用說明

1、下載并解壓,得出pdf文件

2、如果打不開本文件,請(qǐng)務(wù)必下載pdf閱讀器

3、安裝后,在打開解壓得出的pdf文件

4、雙擊進(jìn)行閱讀

收起介紹展開介紹
  • 下載地址
Effective Python:編寫高質(zhì)量python代碼的59個(gè)有效方法 pdf掃描版

有問題? 點(diǎn)此報(bào)錯(cuò)

發(fā)表評(píng)論

1人參與,1條評(píng)論
第1樓湖南省長沙市電信網(wǎng)友發(fā)表于: 2019-03-06 14:20:14
非常好
0蓋樓(回復(fù))