PEP8風格和python版本區別
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《Effective Python 第二版》第二條 遵循PEP8風格指南Python
- 嚴格模式和非嚴格模式區別模式
- Python程式設計風格和設計模式Python程式設計設計模式
- Python之“==”和“is”區別Python
- python的PEP8規範Python
- Python 編碼風格指南Python
- 學Python用哪個版本?Python3和Python2有何區別?Python
- 靜態網格體和骨架網格體的區別
- ojdbc版本區別JDBC
- django版本區別Django
- GitOps中推送與拉取兩種風格的區別 – thenewstackGit
- Python 中 is 和 == 的區別Python
- Python中is和==的區別Python
- PEP8——Python程式碼規範Python
- Python 編碼風格參考Python
- VC中debug和release版本的區別
- git和其他版本控制系統的區別Git
- C 風格字串,C++string類,MFC,CString類的區別。字串C++
- PHP版本的區別PHP
- python ruturn 和 print 的區別Python
- go-carbon 1.3.7 版本釋出,修復時區bug和統一程式碼風格Go
- Google Python 程式設計風格指南GoPython程式設計
- 十、特殊應用:人臉識別和神經風格轉換
- PEP8 python規範神器和jupyter notebook主題更改Python
- 【Python】pyenv的版本控制及global、shell、local命令區別Python
- 細說Python2.x與3.x版本區別Python
- RGB風扇和ARGB風扇有哪些不同?電腦RGB風扇和ARGB風扇的區別介紹
- 軟體架構風格——閉環架構風格(過程風格)架構
- Oracle各版本區別(zt)Oracle
- MySQL各個版本區別MySql
- python和r語言的區別PythonR語言
- django classonlymethod 和 python classmethod的區別DjangoPythonSSM
- python is和==的區別是什麼?Python
- Python和C#有哪些區別?PythonC#
- PHP, Python和Java的區別分享PHPPythonJava
- 認清Python下==和is的區別Python
- Python中range和xrange的區別Python
- Python中%r和%s的區別Python