PEP8悬挂缩进规范

9

关于悬挂缩进的PEP 8规定:

使用悬挂缩进时,应遵循以下考虑:第一行不应有参数,并且应使用进一步的缩进来清楚地区分其作为连续行。

是否有关于“子参数”的明确文档?例如:

some_method(argument_one, argument_two, argument_three=[
    'parameter_one',
    'parameter_two',
    'parameter_three',
    ])

与之相反:

some_method(
    argument_one,
    argument_two,
    argument_three=[
        'parameter_one',
        'parameter_two',
        'parameter_three',
        ]
    )

最好只链接到官方讨论。


最好的做法是追求可读性。通常这意味着遵循指南,但有时并非如此。 - Bryan Oakley
2个回答

11

根据PEP 8的“其他建议”部分:

通常不鼓励复合语句(同一行上的多个语句)。

考虑到这个建议,你的第二个示例可能更符合PEP 8风格指南,因为它避免了在同一行上同时构建方法调用和列表。第二个示例也更容易阅读。


7

我知道这个问题已经有好几年了,但是我想分享一下我的想法和方法,特别是因为我是合法盲人。(我特别注重浅层嵌套和尽可能简单易读的函数调用。)

为了避免可能出现的阅读困难情况,我会事先将列表(或任何创建复杂混乱函数调用的项目)定义为一个变量,以清晰的名称命名,标明它是一个临时变量:

# Build temp argument to avoid messy function call.
arg3_tmp = [
    'parameter1',
    'parameter2',
    'parameter3',
]
some_method(argument1, argument2, arg3_tmp)

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