PEP8風格和python版本區別

tankII發表於2021-09-09

python直譯器
官方CpythonC語言開發,最廣泛的Python直譯器IPython一個互動式,功能增強的CpythonPyPyPython語言寫的Python直譯器,JIT技術,動態編譯Python程式碼JythonPython的原始碼編譯成Java的位元組碼,跑在JVM上IronPython與Jython類似,執行在.Net平臺上的直譯器,Python程式碼被編譯成.Net的位元組碼
版本區別
2.X和3.X區別語句函式化,例如print(1,2)列印出1 2,但是2.x中意思是print語句列印元組,3.x中意思是函式的兩個引數整數,例如1/2和1//2,3.x版本中/為自然除3.x中raw_input重新命名為input,不在使用raw_inputround函式函式,在3.x中i.5的整數變為距離最近的偶數字符串統一使用Unicode異常的捕獲、丟擲的語法改變
遵循PEP8風格指南
空白:
python中的空白(whitespace)會影響程式碼的含義。python程式設計師使用空白的時候尤其在意,因為它們還會影響程式碼的清晰程度。使用space(空格)來表示縮排,而不要用Tab(製表符)和語法相關的每一層縮排都用4個空格來表示每行的字元數不應超過79對於佔據多行的長表示式來說,除了首行之外的其餘各行都應該在通常的縮排級別之上再加4個空格檔案中的函式與類之間應該用兩個空格隔開在同一個類中,各方法之間應該用一個空格隔開在使用下標來獲取列表元素、呼叫函式或給關鍵字引數賦值的時候,不要在兩旁新增空格為變數賦值的時候,賦值符號的左側和右側應該各自寫上一個空格,而且只寫一個就好
命名:
PEP8提倡採用不同的命名風格來編寫python程式碼中的各個部分,以便在閱讀程式碼時可以根據這些名稱看出它們在python語言中的角色函式、變數及屬性應該用小寫字母來拼寫,各單詞之間以下劃線相連,例如lowercase_underscore受保護的例項屬性,應該以單個下劃線開頭,例如_leading_underscore私有的例項屬性,應該以兩個下劃線開頭,例如__double_leading_underscore類與異常,應該以每個單詞首字母均大寫的形式來命名,例如CapitalizedWord模組級別的常量,應該全部採用大寫字母來拼寫,各單詞之間以下劃線相連,例如ALL_CAPS類中的例項方法(instance method),應該把首個引數命名為self,以表示該物件自身類方法(class method)的首個引數,應該命名為cls,以表示該類自身
表示式和語句:
《The Zen of python》(python之禪)中說:“每件事都應該有直白的做法,而且最好只有一種。”PEP8在制定表示式和語法的風格時,就試著體現了這種思想。採用內聯形式的否定詞,而不要把否定詞放在整個表示式的前面,例如,應該寫if a not b 而不是if not a is b不要透過檢測長度的辦法(如if len(somelist) == 0)來判斷somelist是否為[]或”等空值,而不是採用if not somelist這種寫法來判斷,它會假設:空值將自動評估為False檢測somelist是否為[1]或'hi'等非空值時,也應如此,if somelist語句預設會把非空的值判斷為True不要編寫單行的if語句、for迴圈、while迴圈及except複合語句,而是應該把這些語句分成多行來書寫,以示清晰import語句應該總是放在檔案開頭引入模組的時候,總是應該使用絕對名稱,而不應該根據當前模組的路徑來使用相對名稱。例如,引入bar包中的foo模組時,應該完整地寫出from bar import foo,而不應該簡寫成import foo如果一定要以相對名稱來編寫import語句,那就採用明確的寫法:from.import foo檔案中的那些import語句應該按順序劃分成三個部分,分別表示標準庫模組、第三方模組以及自用模組。在每一部分,各import語句應該按模組的字母順序來排列
要點
當編寫python程式碼時,總是應該遵循PEP8風格指南與廣大python開發者採用同一套程式碼風格,可以使專案更利於多人協作採用一致的風格來編寫程式碼,可以令後續的修改工作變得更為容易

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1795/viewspace-2810961/,如需轉載,請註明出處,否則將追究法律責任。

相關文章