PEP8悬挂缩进规格

问题描述 投票:0回答:2

关于悬挂缩进的 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',
        ]
    )
python pep8
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)
© www.soinside.com 2019 - 2024. All rights reserved.