天天看點

python 開發規範 預覽版python 開發規範 預覽版

本文主要參考 pep8和jumpserver開發規範,結合實際,進行修改,歡迎提出修改意見。

pylint

pycharm --> code --> Reformat Code 格式化目前檔案代碼格式

pycharm --> 右擊項目 --> Inspect Code 根據pep8格式檢查目前項目

使用 as

限制最大120個字元。

編寫長語句時,可以使用換行符""換行。在這種情況下,下一行應該與上一行的最後一個“.”句點或“=”對齊,或者是縮進4個空格符。

如果你使用括号“()”或花括号“{}”為長語句換行,那麼下一行應與括号或花括号對齊:

對于元素衆多的清單或元組,在第一個“[”或“(”之後馬上換行:

頂層函數與類之間空兩行,此外都隻空一行。不要在代碼中使用太多的空行來區分不同的邏輯子產品。

單目運算符與運算對象之間不空格(例如,-,~等),即使單目運算符位于括号内部也一樣。

雙目運算符與運算對象之間要空格

<code>使用 f'{name}{value}'</code>

任意類型之間的比較,使用“isinstance(L, list)”和“not isinstance(L, list)”

與單例(singletons)進行比較時,使用 is 和 is not。

永遠不要與True或False進行比較(例如,不要這樣寫:foo == False,而應該這樣寫:if not foo)。

否定成員關系檢查, 使用 foo not in bar,而不是 not foo in bar。

類名稱:采用駱駝拼寫法(CamelCase。

變量名:小寫_以及_下劃線(lowercase_with_underscores)。

方法與函數名:小寫_以及_下劃線(lowercase_with_underscores)。

常量:大寫_以及_下劃線(UPPERCASE_WITH_UNDERSCORES)。

預編譯的正規表達式:name_re。

受保護的元素以一個下劃線為字首。雙下劃線字首隻有定義混入類(mixin classes)時才使用。

如果使用關鍵詞(keywords)作為類名稱,應在名稱後添加後置下劃線(trailing underscore)。 允許與内建變量重名,不要在變量名後添加下劃線進行區分。如果函數需要通路重名的内建變量,請将内建變量重新綁定為其他名稱。

命名要有寓意, 不使用拼音,不使用無意義簡單字母命名 (循環中計數例外 for i in)

命名縮寫要謹慎, 盡量是大家認可的縮寫

盡量 避免使用全局變量, 用類變量來代替

類方法:cls 為第一個參數。

執行個體方法:self 為第一個參數。

property函數中使用匿名函數(lambdas)時,匿名函數的第一個參數可以用 x 替代, 例如:display_name = property(lambda x: x.real_name or x.username)。

禁止參數裡面 直接寫 字元id,用其他替代,例如 asset_id

所有文檔字元串均以 reStructuredText 格式編寫,友善 Sphinx 處理。文檔字元串的行數不同,布局也不一樣。 如果隻有一行,代表字元串結束的三個引号與代表字元串開始的三個引号在同一行。 如果為多行,文檔字元串中的文本緊接着代表字元串開始的三個引号編寫,代表字元串結束的三個引号則自己獨立成一行。 (有能力盡可能用英文, 否則請中文優雅注釋)

文檔字元串應分成簡短摘要(盡量一行)和詳細介紹。如果必要的話,摘要與詳細介紹之間空一行。

子產品檔案的頭部包含有 utf-8 編碼聲明(如果子產品中使用了非 ASCII 編碼的字元,建議進行聲明),以及标準的文檔字元串。

參考:http://docs.jumpserver.org/zh/docs/python_style_guide.html