2012-09-28 45 views
4

http://docs.python.org/tutorial/controlflow.html描述:的Python代碼風格的包裝生產線

換行,使它們不超過79個字符。

Usualy我用線80特徵線,但有時我需要許多參數的函數,作爲一個例子:

extractor.get_trigger_info(cur,con,env,family,iserver,version,login,password,prefix,proxyUser,proxyPass,proxyServer,triggerPage,triggerInfo) 

因此,可以給予什麼樣的建議爲保持對Python的編碼準則風格?有很多論點的函數的最佳實踐是什麼?

THanks提前。

+1

需要大量的參數它有點代碼味道。也許是時候悔改了? –

+0

你能舉個例子嗎?我開始學習Python,並且即時使用問題上提供的鏈接來保持正確。 –

+0

例如,您可以創建一個包含所有這些數據的類,並簡單地傳遞類實例。額外獎勵:您的班級可以自行檢查無效參數。爲了提高可讀性,我還建議在每個逗號後留出一個空格,但PEP8沒有明確推薦它(但是可以從表達式和語句*中的空白*的例子中推斷出它)。 – hochl

回答

5

這些問題的權威性參考文獻是PEP 8。 PEP 8給你幾乎任何你想要的分裂的自由(假設你在一個二元運算符之後中斷並在括號內使用隱含的連續行)。當你打破了線,通常下一行開始在列中的左括號後:

def func_with_lots_of_args(arg1, arg2, arg3, 
          arg4, arg5): 

我個人的風格是儘量安排事情,這樣對摺後每行的東西是大致相同的長度。

def func(arg1, arg2, arg3, 
     arg4, arg5, arg6, 
     kwd='foobar'): 

而不是:

def func(arg1, arg2, arg3, 
     arg4, arg5, arg6, kwd='foobar'): 

雖然PEP8並不真正說你需要做的這種方式。


作爲一個側面說明,如果你有很多位置參數的函數,你應該重新考慮你的程序設計。

+0

感謝您對PEP 8的解釋和參考。我將考慮重新設計,因爲大部分代碼都有類,只有函數。 –

+0

@hochl - 根據您的建議更新代碼。我在我是否喜歡它之間來回切換(但我知道很多人喜歡它)。 – mgilson

+0

+1,但我現在把它的評論放在哪裏更合適^^ – hochl

0

我建議到:

  1. 保持代碼清潔下2個自動化工具:pyflakes和pep8.py(有各種文本編輯器插件爲)

  2. 選擇方法,你認爲是最好的,堅持在整個項目。如果已經有條不紊的話,堅持那個。