PEP8悬挂缩进规范

9 投票
2 回答
8567 浏览
提问于 2025-04-18 01:15

关于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',
        ]
    )

2 个回答

7

我知道这个问题已经很多年了,但我想分享一下我的想法和对我有效的方法,特别是因为我有法律上的视力障碍。(我特别注重保持代码的层次尽量浅,并让我的函数调用尽可能简单易读。)

为了避免出现像这样的可读性问题,我会提前定义一个列表(或者任何会导致复杂、混乱的函数调用的项目),并将其命名为一个清晰的变量,名字中带有某种表示它是临时的提示:

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

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

不建议在同一行写多个语句(复合语句)。

考虑到这个建议,你的第二个例子更符合PEP 8的风格指南,因为它避免了在同一行同时调用方法和构建列表。第二个例子读起来也更简单一些。

撰写回答