2012-06-07 109 views
3

我一直在閱讀各種python編碼風格指南,SO等的一些答案等,但沒有一個提到一些可能不是那麼重要的問題,但我想知道是否有一個首選的方法來做這樣的:Python編碼風格

如果我有一本字典,哪種風格將是更好的使用:

dict_name = {'test': 'somevalue', 
      'test2': 'other'} 

dict_name = { 
    'longer_key': 'somevalue', 
    'longer_key2': 'other' 
} 

dict_name = { 
      'test': 'somevalue', 
      'test2': 'other' 
} 

dict_name = { 
      'test': 'somevalue', 
      'test2': 'other' 
      } 

還是其他什麼東西?

而且打電話時方法:

function_name(longer_arg1, longer_arg2, longer_arg3, 
    longer_arg4) 

function_name(longer_arg1, longer_arg2, longer_arg3, 
       longer_arg4) 

function_name(
    longer_arg1, 
    longer_arg2, 
    longer_arg3, 
    longer_arg4 
) 

function_name(
       longer_arg1, 
       longer_arg2, 
       longer_arg3, 
       longer_arg4 
) 

還是別的?

當使用更長的記錄行,讓我們說:

loggername.info('this is an awfully long line which must be separated' 
    'into two lines, am I doing it right? {0}'.format('nope..')) 

甚至可以這樣考慮:

loggername.info('this is an {0} {1} line which must be separated' 
    'into {2} lines, am I doing it right? {0}'.format(
    'awfully', 'short', 'three', 'nope..') 
) 

現在這個最後是有點關係的函數調用風格,我們也有很多參數,一個很長的字符串,如何分離這些類型的線會是最好的?

+3

http://www.python.org/dev/peps/pep-0008/#indentation –

回答

1

Levon的回答不會出錯,因爲它完全客觀(儘管可能基於主觀文件)。 PEP 8應被視爲標準。基於個人偏見回答:

dict_name = {'test': 'somevalue', 
      'test2': 'other'} 

IDLE(Python的集成開發環境)將格式化字典這樣打回報/第一個逗號後進入時。因此,我經常會將這種風格用於大型字典。

function_name(longer_arg2, longer_arg2, longer_arg3, 
       longer_arg4) 

還考慮IDLE,程序會如果縮進功能,這樣回報/輸入在第三逗號後按下。我通常會遵循這種風格,但您總會偶爾發現標準風格的例外情況。

loggername.info('This is an awfully long line which must be separated into two \ 
lines. Am I doing it right? {}'.format('No.')) 

這可能是我最主觀的評論。程序中的行應該是80個或更少的字符長。這應該可能適用於代碼和文本。請記住,您可以創建塊引用(''')。