3

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

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

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

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

4

2 回答 2

9

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

于 2012-06-07T16:43:50.270 回答
1

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

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

IDLE(Python 的集成开发环境)将在第一个逗号后按回车/回车时以这种方式格式化字典。因此,我经常将这种风格用于大型词典。

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

于 2012-06-07T19:30:14.897 回答