2018年1月25日 星期四

[Python] code style(轉貼)

網路上轉貼的Python命名規則, 統一程式碼風格使用


命名規則
*命名規則沒有一定的格式可依自己看得順眼自行定義
module_name
package_name
ClassName
method_name
ExceptionName
function_name
GLOBAL_CONSTANT_NAME
global_var_name
instance_var_name
function_parameter_name
local_var_name
避免使用的命名:
  1. 除了計數器及迭代器之外,不要用單一字母為變數命名。
  2. package 及 module 的名稱中不要包含破折號 “-“
  3. 變數名稱前後不要加上兩個雙底線 (如:__double_leading_and_trailing_underscore__ )。
命名慣例:
  1. “internal" 指 module 內或 class 中的 private 或 protected 的變數。
  2. 要保護 module 變數或函式,可在變數名稱前加上單一底線,若用 from foo import * 時,這些變數不會被 import。(編案:若用 from foo import _var 則還是能使用 _var 變數)。若要在 class 內宣告 private 變數或方法,則在變數名或 方法名之前加上兩個底線 (__),private 的效果是透過 name mangling 達成。(編案: name mangling 本質上只是把變數重新命名,因此使用者若執意要呼叫 private 變數還 是能夠達成。)
  3. 把相關的 class 及 頂層的 function 放在同一個 module 中。你不需要像 Java 般 限制每個 module 只能有一個 class。
  4. 命名 class 時,使用每個單字的字首用單寫 (如:CapWords)。命名 module 時,用 小寫及底線 (如:lower_with_under.py)。雖然某些既有的 module 命名仍使用大寫字 母 (如:CapWords.py),但不建議這麼做,因為當 module 名稱與 class 名稱相同時它 們將難以分辨。(你通常寫 import StringIO 或 from StringIO import StringIO ?)
命名通則:
  1. package: lower_with_under (public)
  2. modules: lower_with_under (public), _lower_with_under (internal)
  3. classes: CapWords (public) _CapWords (internal)
  4. exceptions: CapWords (public)
  5. functions: lower_with_under() (public), _lower_with_under() (internal)
  6. global/class constants: CAPS_WITH_UNDER (public), _CAPS_WITH_UNDER (private)
  7. global/class variables: lower_with_under (public), _lower_with_under (private)
  8. instance variables: lower_with_under (public), _lower_with_under (protected), __lower_with_under (private)
  9. method names: lower_with_under() (public), _lower_with_under() (protected), __lower_with_under() (private)
  10. function/method parameters: lower_with_under
  11. local variables: lower_with_under (public)

沒有留言:

張貼留言