2012-06-07 108 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个或更少的字符长。这应该可能适用于代码和文本。请记住,您可以创建块引用(''')。