Effective Python 條目二:遵循PEP8風格規約

來源:互聯網
上載者:User

標籤:

Python 增強建議#8,也被稱為PEP8,是格式化Python代碼的風格指引。只要符合文法,你可以隨心所欲地寫Python代碼。然而,一致的風格使你的代碼更加親和與易於理解,及在一個大型社區中與其他Python程式員分享時促進協作。但是即使只有你自己一個人讀你的代碼,遵循這個風格規約將會使得以後修改起來更加容易。

PEP8有一些列豐富的關於怎樣去編寫清晰乾淨的Python代碼的細節。隨著Python語言的演變,它將會持續更新。這是非常值得去閱讀整個線上規約的(http://www.python.org/dev/peps/pep-0008)。這裡有一些規約你應該確保去遵循的:

空格:在Python裡,空格是顯著的文法。在代碼清晰度上,Python程式員對空格的作用是特別敏感的。

  • 對於縮排,使用空格來替換Tab鍵;
  • 每一個文法上的縮排層級使用4個空格;
  • 行的長度應該是79個字元或者更少;
  • 長的運算式在下一行的延續縮排應該比正常縮排層級的額外多4個空格;
  • 在一個檔案裡,函數和類應該有兩個空行分隔;
  • 在類裡面,方法應該被一個空行分隔;
  • 不要再列表的索引,函數調用或者關鍵字參數賦值中添加空格;
  • 在變數賦值的前後,有且只添加一個空格。

命名:PEP8建議在這種語言的不同部分使用獨立的命名風格。這將使得在閱讀代碼的時候,更加容易區分每一個名字對應的類型。

  • 函數,變數,和屬性應該使用lowercase_underscore格式;
  • 保護型的執行個體屬性應該使用_leading_underscore格式;
  • 私人的執行個體屬性應該使用__double_leading_underscore格式;
  • 類和異常應該使用CApitalizedWord格式;
  • 模組層級的常量應該使用ALL_CAPS格式;
  • 類的執行個體方法應該使用self作為第一個參數的名字(它指向這個對象);
  • 類方法應該使用cls作為第一個參數的名字(它指向這個類)。

運算式和聲明:Python的哲學是:“應當只有一種——而且是最好的一種——明確的方式去做一件事。” 對於運算式和聲明,PEP8在它的指引裡嘗試去修改這種風格。

  • 用內聯的否定(if a is not b)代替肯定運算式的否定(if not a is b);
  • 不要通過檢測長度(if len(somelist) == 0)來檢測空值(比如[]或者‘’), 使用 if not somelist 來假設空值隱含評估是False;
  • 一些不是空值( 比如[1] 或 ‘hi’)的東西,語句if somelist 是隱含是True對於非空值;
  • 避免一行中包含if語句,for和while迴圈,和except複合陳述式,把它們分開在多行會更加清晰。
  • 總是吧import語句放在檔案的頂部;
  • 當匯入模組的時候總是使用模組的名字,不要依賴於當前模組所屬的路徑。比如:從bar包中匯入foo模組,你應該使用:from bar import foo,不要僅僅是:import foo;
  • 如果你必須相對的匯入,請使用明確地文法:from . impor foo;
  • 各部分中的匯入應該遵循以下順序:標準庫模組,第三方庫模組,你自己的模組。每一個字部分的匯入應該按照字母排序。

 

NOTE:

 Pylint 工具(http://www.pylint.org/) 是一個很流行的Python源碼靜態分析器,Pylint提供了在Python程式中對於PEP8風格規約和檢查多種其它通用錯誤的類型的自動化檢查。

 

想想和記下來
  • 當寫Python代碼的時候,總是遵循PEP8風格規約;
  • 在一個大的Pthon社區中與他們進行協作交流是採用一個通用的風格;
  • 使用一致的風格使得你的代碼在今後更容易修改。

 

轉載註明出處

原文(英文):effective python, item 2

譯文(中文):http://www.cnblogs.com/reanote/p/effective_python_item_2

備忘(提示):著作權歸原作者所有,如侵犯您的著作權,請郵件聯絡我,我將會收到通知後,儘快刪除! 

Effective Python 條目二:遵循PEP8風格規約

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.