參考:函式和方法引數
不要為了遵守pep約定而破壞相容性!
幾個很好的理由去忽略特定的規則:
當遵循這份指南之後**的可讀性變差,甚至是遵循pep規範的人也覺得可讀性差。
與周圍的**保持一致(也可能出於歷史原因),儘管這也是清理他人混亂(真正的xtreme programming風格)的乙個機會。
有問題的**出現在發現編碼規範之前,而且也沒有充足的理由去修改他們。
當**需要相容不支援編碼規範建議的老版本python。
每一級縮排使用4個空格
# 與左括號對齊
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 推薦:運算子和運算元很容易進行匹配
income = (gross_wages
+ taxable_interest
+ (dividends - qualified_dividends)
- ira_deduction
- student_loan_interest)
推薦: import os
import sys
不推薦: import sys, os
匯入總是位於檔案的頂部,在模組注釋和文件字串之後,在模組的全域性變數與常量之前。
匯入應該按照以下順序分組:
標準庫匯入
相關第三方庫匯入
本地應用/庫特定匯入
你應該在每一組匯入之間加入空行。
如果乙個注釋是乙個短語或句子,它的第乙個單詞應該大寫,除非它是以小寫字母開頭的識別符號(永遠不要改變識別符號的大小寫!)。
塊注釋的每一行開頭使用乙個#和乙個空格(除非塊注釋內部縮排文字)。
行內注釋和**至少要有兩個空格分隔。注釋由#和乙個空格開始。
以下是常見的命名方式:
類名一般使用首字母大寫的約定。
函式名應該小寫,如果想提高可讀性可以用下劃線分隔。
大小寫混合僅在為了相容原來主要以大小寫混合風格的情況下使用(比如 threading.py),保持向後相容性。
如果你想捕獲所有指示程式出錯的異常,使用 except exception: (只有except:等價於 except baseexception:)。
以下兩種情況不應該只使用『excpet』塊:
如果異常處理的**會列印或者記錄log;至少讓使用者知道發生了乙個錯誤。
如果**需要做清理工作,使用 raise..try…finally 能很好處理這種情況並且能讓異常繼續上浮。
返回的語句保持一致。函式中的返回語句都應該返回乙個表示式,或者都不返回。如果乙個返回語句需要返回乙個表示式,那麼在沒有值可以返回的情況下,需要用 return none 顯式指明,並且在函式的最後顯式指定一條返回語句(如果能跑到那的話)。
推薦:
def foo(x):
if x >= 0:
return math.sqrt(x)
else:
return none
def bar(x):
if x < 0:
return none
return math.sqrt(x)
不推薦:
def foo(x):
if x >= 0:
return math.sqrt(x)
def bar(x):
if x < 0:
return
return math.sqrt(x)
不要用 == 去和true或者false比較:
正確: if greeting:
糟糕: if greeting == true:
更糟: if greeting is true:
PEP8編碼規範
pep8 python 編碼規範 一 編排 1 縮排。4個空格的縮排 編輯器都可以完成此功能 不使用tap,更不能混合使用tap和空格。2 每行最大長度79,換行可以使用反斜槓,最好使用圓括號。換行點要在操作符的後邊敲回車。3 類和top level函式定義之間空兩行 類中的方法定義之間空一行 函式...
PEP8編碼規範
一 編排 1 縮排。4個空格的縮排 編輯器都可以完成此功能 不使用tap,更不能混合使用tap和空格。2 每行最大長度79,換行可以使用反斜槓,最好使用圓括號。換行點要在操作符的後邊敲回車。3 類和top level函式定義之間空兩行 類中的方法定義之間空一行 函式內邏輯無關段落之間空一行 其他地方...
PEP8規範總結
pep8 是什麼呢,簡單說就是一種編碼規範,是為了讓 更好看 更容易被閱讀。具體有這些規範,參考 pep 8 style guide for python code.當然也可以使用pycharm檢查或使用pylint.下面是規範總結 def foo first,second,third,fourth...