Effective-用Pythonic方式來思考

  1. 確定所用的Python版本
    Python2與3代碼是不兼容的。目前Python2的功能開發(fā)已經(jīng)停止,只會修復bug,而Python3不是足夠的穩(wěn)定。Python2適配到Python3的工具有2to3、six等。
  2. 遵循PEP8風格指南
    《Python Enhancement Proposal #8》簡稱PEP8,針對python代碼格式編訂的風格指南。
空白:
  * 使用space來表示縮進,而不是tab
  * 每行字符數(shù)不應超過79個字符
  * 對于占據(jù)多行的長表達式,除了首行外,其他行都應再縮進4個空格
  * 文件中的函數(shù)與類之間應該空兩行
  * 同一個類中,方法間應空一個空行
  * 在使用下標來獲取列表元素、調(diào)用函數(shù)或給關鍵字參數(shù)賦值的時候,不要在旁加空格
命名:
  * 函數(shù)、變量、屬性應該用小寫字母來拼寫,單詞間用下劃線連接
  * 受保護的實例屬性,應該用單個下劃線開頭
  * 私有實例,應該用兩個下劃線開頭
  * 類與異常,每個單詞首字母大寫
  * 模塊級別的常量,所有單詞大寫,單詞間用下劃線連接
  * 類中的實例方法,首個參數(shù)命名為self,表示該對象自身
  * 類方法的首個參數(shù)命名為cls,表示該類自身
表達式和語句:
  * 采用內(nèi)聯(lián)形式的否定詞,而不是把否定詞放在整個表達式前。例如:if a is not b 而不是 if not a is b
  * 不要通過檢測長度的辦法來判斷列表是否為[]或者空值,而是if not somelist
  * 不要編寫單杠的if語句、for循環(huán)、while循環(huán)以及except復合語句,而是多行書寫,閱讀更清晰
  * import 語句應該總是放在文件開頭
  * 引入模塊的時候,應該使用絕對名稱,而不是根據(jù)當前模塊的路徑來使用相對的名稱
  * 文件中import語句應該分為三個部分,分別為標準庫、第三方模塊和自用模塊。每個部分,按模塊名稱的字母順序來排列
  1. 了解bytes、str與unicode的區(qū)別
    python3的兩種字符序列類型:bytes和str。bytes為原始的8位字節(jié),str則包含unicode字符。
    python2有兩種字符序列類型:str和unicode,str包含原始8位字節(jié)。
    關于這個請關注我的另一篇blog--《編碼問題以及其在Python2與3的差異》
    想把unicode轉(zhuǎn)為二進制數(shù)據(jù),使用encode方法,相反則使用decode方法
  2. 用輔助函數(shù)來取代復雜的表達式
    表達式復雜了,就拆分為小塊
  3. 了解切割序列的方法
  4. 在單次切片操作內(nèi),不要同時制定start、end和stride。
    list[start:end:stride]
  5. 用列表推導來取代map和filter
    [x+1 for x in list]
  6. 不要使用含有兩個以上表達式的列表推導
  7. 用生成器表達式來改寫數(shù)據(jù)量較大的列表推導
  8. 盡量用enumerate取代range
    enumerate可以把迭代器包裝為生成器,生成器產(chǎn)生一對值,前者為循環(huán)下標,后者表示對應的元素
  9. 用zip函數(shù)同時遍歷兩個迭代器
    可以把兩個及以上的迭代器封裝為生成器,如果不等長,則以較短的迭代器為準。
    itertools的zip_longest函數(shù)可以平行遍歷多個迭代器。
  10. 不要在for和while循環(huán)后寫else
    因為循環(huán)后的else語句塊在循環(huán)結(jié)束后都會執(zhí)行,跟正常邏輯有點不一樣。
  11. 合理利用try/except/else/finally結(jié)構中代碼塊
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • python學習筆記 聲明:學習筆記主要是根據(jù)廖雪峰官方網(wǎng)站python學習學習的,另外根據(jù)自己平時的積累進行修正...
    renyangfar閱讀 3,250評論 0 10
  • 兩本不錯的書: 《Python參考手冊》:對Python各個標準模塊,特性介紹的比較詳細。 《Python核心編程...
    靜熙老師哈哈哈閱讀 3,442評論 0 80
  • http://python.jobbole.com/85231/ 關于專業(yè)技能寫完項目接著寫寫一名3年工作經(jīng)驗的J...
    燕京博士閱讀 7,804評論 1 118
  • 過客 吳見知 在表姐國慶節(jié)那天給我送來一條寵物狗時,我很驚奇也很高興。從此我也有條很可愛的寵物狗了! 表姐把狗一送...
    吳見知閱讀 501評論 16 6
  • 禪宗美學告訴我們,通過簡化能夠展示事物之美,詮釋有力信息。 ——幻燈片演示專家 Garr Reynolds 1.極...
    好PPT閱讀 2,885評論 5 128

友情鏈接更多精彩內(nèi)容