Python编码风格

时间:2012-06-07 16:43:00

标签: python coding-style

我一直在阅读各种python编码风格指南,SO上的一些答案等,但没有一个提到一些可能不是那么重要的问题,但我想知道是否有一种首选的方法:< / p>

如果我有字典,哪种风格会更好用:

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..')
)

现在这最后一点也与函数调用样式有关,我们有很多参数,一个长字符串,如何将这些行分开是最好的?

2 个答案:

答案 0 :(得分:9)

查看PEP 8 - The Style Guide for Python Code有关如何编写可读Python代码的指导,你不会出错。强烈推荐。

答案 1 :(得分:1)

Levon的回答你不会出错,因为它完全是客观的(尽管可能基于主观文件)。 PEP 8 应被视为标准。根据个人偏见回答:

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

IDLE(Python的集成DeveLopment环境)将在第一个逗号后点击 return / enter 时以这种方式格式化字典。因此,我经常会将这种风格用于大型词典。

function_name(longer_arg2, longer_arg2, longer_arg3,
              longer_arg4)

同时考虑IDLE,如果在第三个逗号后按下 return / enter ,程序将以这种方式缩进功能。我通常遵循这种风格,但你总会发现标准风格的偶然例外。

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

这可能是我最主观的评论。程序中的行长度不应超过80个字符。这应该适用于代码和文本。请记住,您可以创建块引号(''')。