Python编码风格

3

我一直在阅读各种Python编码风格指南、Stack Overflow上的一些答案等,但是它们都没有提到一些可能不那么重要的问题,但我想知道是否有首选的方法来处理以下情况:

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

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 - Martijn Pieters
2个回答

9

1

Levon的答案是完全客观的(尽管可能基于主观文件),您不会错。应该将PEP 8视为标准。基于个人偏见回答:

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

当在 Python 的集成开发环境(IDLE)中输入一个字典并在第一个逗号后按下回车键时,它会以这种方式格式化字典。因此,我经常会在大型字典中使用这种样式。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接