看板 Python 關於我們 聯絡資訊
原文網址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html 在下曾在 Google 工作過,因此確知 Python 在 Google 內被廣泛地使用 (至少幾 年前是如此)。 這份 Google 建議的 Python 風格指南,與 Google 內部的 Python 建議風格只有 幾個小地方不同,但這些相異處多半是因為語言演變及為了與舊的 code 一致所造 成的。整體而言,這份指南的實用程度相當高,其中很多建議也都列出施行的優缺 點及取捨的準則。 這份指南共有將近40點的建議,我計劃在未來的幾個月內逐條翻譯。這個翻譯不一 定會是逐字稿,有可能加上一點點個人的淺見。每篇文章可能只包含一兩條建議, 有興趣的人也歡迎插隊把還沒翻譯的建議事項翻成中文。:p ----------正文開始的分隔線---------- 背景 ---- Python 是 Google 內部主要的腳本語言。本文將條列出 Python 的建議用法與應避 免的事項。 Vim 的使用者可以用這份設定檔來格式你的程式: http://google-styleguide.googlecode.com/svn/trunk/google_python_style.vim 若你使用 Emacs,使用預設的設定即可。 語言規則 -------- * pychecker 釋義: pychecker 有助於找到 Python 程式碼中的臭蟲。如同編譯器能幫助編譯式語言 (如 :C, C++) 找到一些語法或打字上的錯誤,pychecker 通常也能找到 Python 程式碼 中類似的問題。另一個與 pychecker 類似的工具提 lint (編案:我自己常用的另一 個工具是 pyflakes)。然而,由於 Python 是一個動態語言,某些警告可能不正確, 但錯誤的警告並不常發生。 優點: 找出容易被忽略的錯誤,如:打錯字、變數未賦值就直接使用等。 缺點: pychecker 並不完美。實際上,有時我們仍需直接或間接地忽略它的訊息,或者想辦 法改進程式。 決策: 永遠使用 pychecker (或類似的程式) 來幫助寫出更好的程式。 pychecker 的用法,請參照官網:http://pychecker.sourceforge.net/ 若必要,可以用 module-level 變數 __pychecker__ 來適度地隱藏警告,如: __pychecker__ = 'no-callinit no-classattr' 這種有系統的警告隱藏方式能幫助事後搜尋並重新檢視隱藏規則是否合宜。 pychecker 的警告項目條列,可從 pychecker --help 中找到。 若函式中一部份的輸入參數在該函式中沒被用到,pychecker 預設會提出警告。若要 隱藏此種警告,可以在該參數的名稱前加上 "unused_"。若不想改變參數名稱,可以 在函式的開頭用下面的方法要求 pychecker 隱藏此警告。 def foo(a, unused_b, unused_c, d=None, e=None): _ = d, e return a 理想上,pychecker 應確認 "unused_b", "unused_c", "d", "e" 的確未被使用。然 而,筆者實際測試 pychecker 0.8.18 的結果,pychecker 目前並未做此確認。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 75.102.68.115
uranusjr:相關閱讀:PEP 8 http://goo.gl/ouQap 04/25 22:53
uranusjr:PEP8 style checker https://pypi.python.org/pypi/pep8 04/25 22:54
uranusjr:SublimeCodeIntel recommended for Sublime Text users 04/25 22:54
uranusjr:還有一個 SublimeLinter 有自動 PEP 8 檢查 04/25 22:59
Yoxem:或許可以M文? 04/25 23:22
caty1010:期待大大繼續分享 04/26 01:48
BBBroflovski:期待分享+1 非常實用啊 04/26 02:21
wangm4a1:推 04/26 02:24
swpoker:可以偷問一下有java版嗎 04/26 11:22
swinds24:推!!! 很實用!!! 04/26 13:57
ck574b027:原來這很實用啊,我還以為大家都知道,早知道也來翻一下 04/26 14:05
liangjr:Java可以看這篇匯入Eclipse http://goo.gl/xh5SG 04/26 15:21
ibmibmibm:可以轉Translate_CS喔XD 04/26 16:04
ibmibmibm:疑?已經轉了XD 04/26 16:05
sandwichC:ck574b027歡迎插隊翻譯 04/26 21:21
POSIX:推阿! 04/26 22:37
kilfu0701:推一個 04/27 02:15
darkgerm:推!! coding style 真的很重要 04/27 13:11
polarpolar:好翻譯,不推嗎? 05/01 01:54