Python 程式碼規範
1. 變數
常量 : 大寫加下劃線 USER_CONSTANT
私有變數:小寫和一個前導下劃線 _private_value
Python中不存在私有變數一說,若是遇到需要保護的變數,使用小寫和一個前導下劃線。單這只是程式設計師之間的一個約定,用於警告說明這是一個私有變數,外部類不要去訪問它。但實際上,外部類還是可以訪問到這個變數。
內建變數:小寫,兩個前導下劃線和後置下劃線 class
兩個前導下劃線會導致變數在直譯器件被更名。這是為了避免內建變數和其他變數產生衝突。使用者定義的變數要嚴格避免這種風格。以免導致混亂。
2. 函式和方法
總體而言應該使用,小寫和下劃線。但有些比較老的庫使用的是混合大小寫,即首單詞小寫,之後每個單詞第一個字母大寫,其餘小寫,但現在, 小寫和下劃線已成為規範。
私有方法:小寫和一個前導下劃線。
這裡和私有變數一樣。並不是真正的私有訪問許可權。同時也應該注意一般函式不要使用兩個前導下劃線。
特殊方法: 小寫和兩個前導下劃線,兩個後置下劃線。 這種風格只應用於特殊函式,比如操作符過載。
函式引數: 小寫和下劃線,預設值等號兩邊無空格。
3. 類
類總是使用駝峰格式命名,即所有單詞首字母大寫其餘字母小寫。類名應該簡明,精確,並足以從中理解類所完成的工作。常見的一個方法是使用表示其型別或者特性的字尾。
例如:SQLEngine, MimeTypes, 對於基類而言,可以使用一個Base 或者 Abstract 字首BaseCookie, AbstractGroup
4. 模組和包
除特殊模組 __init__之外,模組名稱都使用不帶下劃線的小寫字母。
5. 關於引數
- 不要使用斷言來實現靜態型別檢測。斷言可以用於檢查引數,但不應僅僅是進行靜態型別。Python是動態型別語言,靜態型別檢查違背了其設計思想。斷言應該用於避免函式不被毫無意義的呼叫。
- 不要濫用 args和**kwargs。args 和 **kwargs 引數可能會破壞函式的健壯性。它們使簽名變得模糊,而且程式碼常常開始在不應該的地方構建小的引數解析器。
6. 其他
-
使用 has 或 is 字首命名布林元素
is_connect = True
has_connect = False -
用複數形式命名序列
members = ['user_1', 'user_2'] -
用顯式名稱命名字典
person_address = {'user_1': 10, 'user_2': 20} -
避免通用名稱
諸如 list, dict, sequence ,或者 element 這樣的名稱應該避免 -
避免現有名稱
諸如 os, sys 這種系統已經存在的名稱應該避免
7. 一些數字
一行列數: PEP8 規定為79列。根據自己的情況,比如不要超過滿屏時編輯器的顯示列數。
一個函式:不要超過30行程式碼,即可顯示在一個螢幕類,可以不使用垂直遊標即可看到整個函式。
一個類:不要超過200行程式碼, 不要有超過10個方法。一個模組不要超過500行。