c++编码规范_Python02编码规范
俗話說無規范不方圓
官網
https://www.python.org/dev/peps/pep-0008/
前言
Guido的主要見解之一是代碼被讀取的次數多于其編寫的次數。此處提供的指南旨在提高代碼的可讀性,并使其在各種Python代碼中保持一致。正如PEP 20所說,“可讀性至關重要”。
代碼布局
縮進
每個縮進級別使用4個空格。
續行應該使用在括號,方括號和花括號內使用Python的隱式線垂直對齊包裝的元素,或使用懸掛式縮進?[7]。使用懸掛式凹痕時,應考慮以下幾點:第一行不應包含任何參數,并且應使用進一步的縮進形式將其清楚地區分為延續行:
最大線長限制
所有行最多79個字符。
為了使較長的文本塊具有較少的結構限制(文檔字符串或注釋),行長應限制為72個字符。
空行
用兩個空行包圍頂級函數和類定義。
類內的方法定義由單個空白行包圍。
多余的空白行可以(分別)用于分隔相關功能組。一堆相關的單線(例如,一組虛擬實現)之間可以省略空白行。
在函數中使用空白行,以節省空間,以指示邏輯部分。
源文件編碼
核心Python發行版中的代碼應始終使用UTF-8(或Python 2中的ASCII)。
使用ASCII(在Python 2中)或UTF-8(在Python 3中)的文件不應具有編碼聲明。
導入
1、導入通常應在單獨的行上:
2、導入總是放在文件的頂部,緊隨任何模塊注釋和文檔字符串之后,以及模塊全局變量和常量之前。
導入應按以下順序分組:
標準庫導入。
相關第三方進口。
本地應用程序/庫特定的導入。
您應該在每組導入之間放置一個空白行。
3、推薦絕對導入,因為如果導入系統配置不正確(例如,程序包中的目錄最終位于sys.path時),則它們通常更具可讀性,并且通常表現更好(或至少會提供更好的錯誤消息):
4、從包含類的模塊中導入類時,通常可以這樣拼寫:
5、應該避免使用通配符導入(來自 import *),因為通配符使不清楚名稱空間中存在哪些名稱,從而使閱讀器和許多自動化工具都感到困惑。
模塊級Dunder名稱
模塊級“dunders”(即名稱具有兩個前緣和兩個縱下劃線)如__all__,__author__,__version__等應被放置在模塊文檔字符串之后,但在任何導入語句以外從__future__進口。Python強制要求將來導入必須在模塊中出現在除文檔字符串以外的任何其他代碼之前:
字符串引號
在Python中,單引號字符串和雙引號字符串是相同的。本PEP對此不做任何建議。選擇一條規則并堅持下去。但是,當字符串包含單引號或雙引號字符時,請使用另一個以避免在字符串中使用反斜杠。它提高了可讀性。
對于三引號字符串,請始終使用雙引號字符以與PEP 257中的docstring約定一致。
表達式和語句中的空格
在以下情況下,請避免使用多余的空格:
注釋
與代碼矛盾的注釋比沒有注釋更糟糕。當代碼更改時,始終要始終使注釋保持最新狀態!
評論應為完整句子。第一個單詞應大寫,除非它是一個以小寫字母開頭的標識符(請勿更改標識符的大小寫!)。
整體注釋通常由一個或多個完整句子組成的段落組成,每個句子以句點結尾。
在多句注釋中,除了最后一個句子之外,您應該在句子結尾句后使用兩個空格。
確保您的注釋清晰明了,并且其他母語使用者也很容易理解。
來自非英語國家的Python編碼人員:請用英語寫您的評論,除非您有120%的把握確保不會說這種語言的人不會閱讀該代碼。
文檔字符串
在PEP 257中,編寫好的文檔字符串(也稱為“文檔字符串”)的約定不朽。
為所有公共模塊,函數,類和方法編寫文檔字符串。對于非公共方法,文檔字符串不是必需的,但是您應該具有描述該方法功能的注釋。該注釋應出現在def行之后。
命名約定
Python庫的命名約定有點混亂,因此我們永遠都無法做到完全一致-盡管如此,這是當前推薦的命名標準。新的模塊和軟件包(包括第三方框架)應按照這些標準編寫,但是如果現有庫具有不同的樣式,則首選內部一致性。
首要原則
對于用戶而言,作為API公共部分可見的名稱應遵循反映用法而不是實現的約定。
描述性:命名樣式
有很多不同的命名樣式。能夠獨立于它們的用途來識別正在使用的命名樣式。
通常區分以下命名樣式:
b(單個小寫字母)
B(單個大寫字母)
小寫
lower_case_with_underscores
大寫
UPPER_CASE_WITH_UNDERSCORES
大寫的單詞(或CapWords或CamelCase-之所以命名,是因為其字母的顛簸外觀[4])。有時也稱為StudlyCaps。
注意:在CapWords中使用首字母縮寫詞時,請使用首字母縮寫詞的所有字母大寫。因此,HTTPServerError比HttpServerError好。
mixedCase(與大小寫字母首字母小寫字母不同!)
Capitalized_Words_With_Underscores(難看!)
還有一種使用短的唯一前綴將相關名稱組合在一起的樣式。這在Python中使用不多,但是為了完整起見提到它。例如,os.stat()函數返回一個元組,該元組的項目傳統上具有諸如st_mode,st_size,st_mtime等名稱。(這樣做是為了強調與POSIX系統調用結構的字段的對應關系,這有助于程序員熟悉該結構。)
軟件包和模塊名稱
模塊應使用簡短的全小寫名稱。如果模塊名稱可以提高可讀性,則可以在模塊名稱中使用下劃線。盡管不鼓勵使用下劃線,但Python軟件包也應使用短小寫全名。
當用C或C ++編寫的擴展模塊具有隨附的Python模塊提供更高級別(例如,更多面向對象)的接口時,C / C ++模塊具有下劃線(例如_socket)。
類名
類名通常應使用CapWords約定。
在接口被記錄并主要用作可調用函數的情況下,可以代替使用函數的命名約定。
請注意,內置名稱有一個單獨的約定:大多數內置名稱是單個單詞(或兩個單詞一起運行),而CapWords約定僅用于異常名稱和內置常量。
類型變量名
在PEP 484中引入的類型變量的名稱通常應使用CapWords,而應使用短名稱:T,AnyStr,Num。建議將后綴_co或_contra添加到用于分別聲明協變或反變行為的變量中:
異常名稱
因為異常應該是類,所以在這里適用類命名約定。但是,您應該在異常名稱上使用后綴“ Error”(如果異常實際上是一個錯誤)。
全局變量名
(我們希望這些變量只能在一個模塊內使用。)這些約定與函數的約定大致相同。
設計用于通過M import *使用的模塊應使用__all__機制以防止導出全局變量,或使用較早的約定在此類全局變量前加下劃線(您可能需要這樣做以表明這些全局變量是“非公共模塊” ”)。
函數和變量名
函數名稱應小寫,必要時用下劃線分隔單詞以提高可讀性。
變量名與函數名遵循相同的約定。
僅在已經是主流樣式(例如threading.py)的上下文中才允許使用mixedCase,以保持向后兼容性。
函數和方法參數
始終將self作為實例方法的第一個參數。
始終對類方法的第一個參數使用cls。
如果函數參數的名稱與保留關鍵字發生沖突,通常最好在末尾附加一個下劃線,而不要使用縮寫或拼寫錯誤。因此,class_優于clss。(也許最好通過使用同義詞來避免此類沖突。)
方法名稱和實例變量
使用函數命名規則:小寫字母,必要時用下劃線分隔單詞,以提高可讀性。
僅對非公共方法和實例變量使用一個前劃線。
為避免名稱與子類沖突,請使用兩個前導下劃線來調用Python的名稱處理規則。
Python用類名來修飾這些名稱:如果類Foo具有名為__a的屬性,則Foo .__ a不能訪問它。(堅持的用戶仍然可以通過調用Foo._Foo__a來獲得訪問權限。)通常,雙引號下劃線僅應用于避免名稱與設計為子類的類中的屬性發生沖突。
注意:關于__name的使用存在一些爭議(請參見下文)。
常數
常量通常在模塊級別定義,并以所有大寫字母書寫,并用下劃線分隔單詞。示例包括MAX_OVERFLOW和TOTAL。
總結
以上是生活随笔為你收集整理的c++编码规范_Python02编码规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学java_北京Java培训班好吗?去哪
- 下一篇: arcgis怎么压缩tif文件_地理工具