編寫高質量代碼:改善Python程序的91個建議

編寫高質量代碼:改善Python程序的91個建議 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:張穎
出品人:
頁數:272
译者:
出版時間:2014-6
價格:59.00元
裝幀:平裝
isbn號碼:9787111467045
叢書系列:Effective係列叢書
圖書標籤:
  • python
  • Python
  • 編程
  • 計算機
  • 程序設計
  • Programming
  • 編程語言
  • 軟件工程
  • Python
  • 編程
  • 高質量代碼
  • 代碼建議
  • 軟件開發
  • 編程技巧
  • 代碼優化
  • 編程實踐
  • 工程實踐
  • 代碼規範
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

在通往“Python技術殿堂”的路上,本書將為你編寫健壯、優雅、高質量的Python代碼提供切實幫助!內容全部由Python編碼的最佳實踐組成,從基本原則、慣用法、語法、庫、設計模式、內部機製、開發工具和性能優化8個方麵深入探討瞭編寫高質量Python代碼的技巧與禁忌,一共總結齣91條寶貴的建議。每條建議對應Python程序員可能會遇到的一個問題。本書不僅以建議的方式從正反兩方麵給齣瞭被實踐證明為十分優秀的解決方案或非常糟糕的解決方案,而且分析瞭問題産生的根源,會使人有一種醍醐灌頂的感覺,豁然開朗。

《編寫高質量代碼:改善Python程序的91個建議》針對每個問題所選擇的應用場景都非常典型,給齣的建議也都與實踐緊密結閤。書中的每一條建議都可能在你的下一行代碼、下一個應用或下一個項目中顯露鋒芒。建議你將本書擱置在手邊,隨時查閱,相信這麼做一定能使你的學習和開發工作事半功倍。

著者簡介

張穎,資深軟件開發工程師,精通Java、Python、Perl等技術,以及多種腳本語言,有多年開發經驗。曾就職於阿爾卡特朗訊上海公司的LTE無綫事業部,現就職於IBM CSTL,工作期間獲得過多種奬勵,並於2012年獲得一項雲計算相關的專利。

賴勇浩,資深軟件開發工程師,自2006年起以編寫Python代碼為生,現已創業。在Python領域有深厚的積纍,CSDN博客專傢,博客瀏覽量超過200萬。也是珠三角技術沙龍創始人之一,從2009年起擔任沙龍組委,長年活躍在社區第一綫,在國內Python圈子裏有較高的知名度和影響力。有超過7年的遊戲開發經驗,擅長Python、C++等網遊相關的技術,曾就職於網易等網遊研發廠商;現專注於中國彩票事業,開發互聯網、電話和自助終端彩票銷售平颱,以促進行業信息化為己任。

圖書目錄

前 言
第1章 引論 1
建議1:理解Pythonic概念 1
建議2:編寫Pythonic代碼 5
建議3:理解Python與C語言的不同之處 8
建議4:在代碼中適當添加注釋 10
建議5:通過適當添加空行使代碼布局更為優雅、閤理 12
建議6:編寫函數的4個原則 15
建議7:將常量集中到一個文件 18
第2章 編程慣用法 20
建議8:利用assert語句來發現問題 20
建議9:數據交換值的時候不推薦使用中間變量 22
建議10:充分利用Lazy evaluation的特性 24
建議11:理解枚舉替代實現的缺陷 25
建議12:不推薦使用type來進行類型檢查 27
建議13:盡量轉換為浮點類型後再做除法 29
建議14:警惕eval()的安全漏洞 31
建議15:使用enumerate()獲取序列迭代的索引和值 33
建議16:分清==與is的適用場景 35
建議17:考慮兼容性,盡可能使用Unicode 37
建議18:構建閤理的包層次來管理module 42
第3章 基礎語法 45
建議19:有節製地使用from...import語句 45
建議20:優先使用absolute import來導入模塊 48
建議21:i+=1不等於++i 50
建議22:使用with自動關閉資源 50
建議23:使用else子句簡化循環(異常處理) 53
建議24:遵循異常處理的幾點基本原則 55
建議25:避免finally中可能發生的陷阱 59
建議26:深入理解None,正確判斷對象是否為空 60
建議27:連接字符串應優先使用join而不是+ 62
建議28:格式化字符串時盡量使用.format方式而不是% 64
建議29:區彆對待可變對象和不可變對象 68
建議30:[]、()和{}:一緻的容器初始化形式 71
建議31:記住函數傳參既不是傳值也不是傳引用 73
建議32:警惕默認參數潛在的問題 77
建議33:慎用變長參數 78
建議34:深入理解str()和repr()的區彆 80
建議35:分清staticmethod和classmethod的適用場景 82
第4章 庫 86
建議36:掌握字符串的基本用法 86
建議37:按需選擇sort()或者sorted() 89
建議38:使用copy模塊深拷貝對象 92
建議39:使用Counter進行計數統計 95
建議40:深入掌握ConfigParser 97
建議41:使用argparse處理命令行參數 99
建議42:使用pandas處理大型CSV文件 103
建議43:一般情況使用ElementTree解析XML 107
建議44:理解模塊pickle優劣 111
建議45:序列化的另一個不錯的選擇——JSON 113
建議46:使用traceback獲取棧信息 116
建議47:使用logging記錄日誌信息 119
建議48:使用threading模塊編寫多綫程程序 122
建議49:使用Queue使多綫程編程更安全 125
第5章 設計模式 129
建議50:利用模塊實現單例模式 129
建議51:用mixin模式讓程序更加靈活 132
建議52:用發布訂閱模式實現鬆耦閤 134
建議53:用狀態模式美化代碼 137
第6章 內部機製 141
建議54:理解built-in objects 141
建議55:__init__()不是構造方法 143
建議56:理解名字查找機製 147
建議57:為什麼需要self參數 151
建議58:理解MRO與多繼承 154
建議59:理解描述符機製 157
建議60:區彆__getattr__()和__getattribute__()方法 160
建議61:使用更為安全的property 164
建議62:掌握metaclass 169
建議63:熟悉Python對象協議 176
建議64:利用操作符重載實現中綴語法 179
建議65:熟悉 Python 的迭代器協議 181
建議66:熟悉 Python 的生成器 185
建議67:基於生成器的協程及greenlet 188
建議68:理解GIL的局限性 192
建議69:對象的管理與垃圾迴收 194
第7章 使用工具輔助項目開發 197
建議70:從PyPI安裝包 197
建議71:使用pip和yolk安裝、管理包 199
建議72:做paster創建包 202
建議73:理解單元測試概念 209
建議74:為包編寫單元測試 212
建議75:利用測試驅動開發提高代碼的可測性 216
建議76:使用Pylint檢查代碼風格 218
建議77:進行高效的代碼審查 221
建議78:將包發布到PyPI 224
第8章 性能剖析與優化 227
建議79:瞭解代碼優化的基本原則 227
建議80:藉助性能優化工具 228
建議81:利用cProfile定位性能瓶頸 229
建議82:使用memory_profiler 和 objgraph 剖析內存使用 235
建議83:努力降低算法復雜度 237
建議84:掌握循環優化的基本技巧 238
建議85:使用生成器提高效率 240
建議86:使用不同的數據結構優化性能 243
建議87:充分利用set的優勢 245
建議88:使用multiprocessing剋服GIL的缺陷 248
建議89:使用綫程池提高效率 254
建議90:使用C/C++模塊擴展提高性能 257
建議91:使用 Cython 編寫擴展模塊 259
· · · · · · (收起)

讀後感

評分

在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Python代码提供切实帮助!内容全部由Python编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化8个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出91...  

評分

使用了 from operator import itemgetter 居然还用 operator.itemgetter 调用方法,感觉代码都没运行过... 针对字典 mydict 的 value 结构 [n,m] 中的 n 按照从小到大的顺序排列 粘贴的结果都不是预期的,完全说不通... 应该是 sorted(mydict.iteritems(), key=lambda (k,v): ...  

評分

使用了 from operator import itemgetter 居然还用 operator.itemgetter 调用方法,感觉代码都没运行过... 针对字典 mydict 的 value 结构 [n,m] 中的 n 按照从小到大的顺序排列 粘贴的结果都不是预期的,完全说不通... 应该是 sorted(mydict.iteritems(), key=lambda (k,v): ...  

評分

使用了 from operator import itemgetter 居然还用 operator.itemgetter 调用方法,感觉代码都没运行过... 针对字典 mydict 的 value 结构 [n,m] 中的 n 按照从小到大的顺序排列 粘贴的结果都不是预期的,完全说不通... 应该是 sorted(mydict.iteritems(), key=lambda (k,v): ...  

評分

作者是难得的中国人,写的很实用,有点意思,对于提高自己对python的认识很有帮助. 对于python的内部机制有简明的介绍,对于一些容易搞混的概念也有很详细的对比. 总体感觉此书正如python的风格,简介明了,没有多余的废话.

用戶評價

评分

#這書定位有點怪,知識點有很淺的也有很深的,深的部分基本沒展開講。我很懷疑如果讀者沒看過其他深入介紹Python的書能否看懂,但是如果讀者已經看過瞭,又何必來看這本呢?

评分

作者算是把memo拿齣來齣書瞭,蠻不負責的。雖然能學到一些應用方法

评分

個人覺得內容編排,校對方麵都還有很大改善空間。有人覺得書寫的虎頭蛇尾是有道理的。

评分

爛書

评分

還可以啊。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有