简体   繁体   English

Python 缩进 ): 在 function 的末尾遵循 pep8 样式?

[英]Python does an indentation of the ): at the end of a function follow the pep8 style?

For an example function declaration:例如 function 声明:

def foo(
        long_parameter_name_1, long_parameter_name_2 = "default value var 2",
        long_parameter_name_3 = "default value var 3", long_parameter_name_4 = "default value var 4"
        ):

Does the above method of function declaration follow the pep8 style guidelines as a modified version of the below function definition in order to handle parameters for lines of over 80 characters? function 声明的上述方法是否遵循 pep8 样式指南作为以下 function 定义的修改版本,以便处理超过 80 个字符的行的参数? I find it more readable for long lines with default values but the pep8 style guide did not specify this condition.我发现它对于具有默认值的长行更具可读性,但 pep8 样式指南未指定此条件。

def foo(long_parameter_name_1, long_parameter_name_2 = "default value var 2",
        long_parameter_name_3 = "default value var 3", long_parameter_name_ = "default value var 4"):

PEP-8 allows both; PEP-8 允许两者; see the last section of the discussion of indentation .请参阅缩进讨论的最后一节。 However, it also recommends no spaces around the = in the keyword arguments, and it does not require quite so much indentation for the parameters.但是,它还建议在关键字 arguments 中的=周围不要有空格,并且它不需要对参数进行太多缩进。 Indentation should match, but if the first parameter is on a new line, it need not be indented past the opening ( .缩进应该匹配,但如果第一个参数在新行上,它不需要缩进到开头( .

Either任何一个

def foo(
    long_parameter_name_1, long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"
    ):

or或者

def foo(
    long_parameter_name_1, long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3", long_parameter_name_4="default value var 4"):

is acceptable.是可以接受的。


I would go one step farther, though, and recommend that in either case you limit yourself to one parameter per line.不过,我会 go 更进一步,并建议在任何一种情况下,您都将自己限制为每行一个参数。

def foo(
    long_parameter_name_1,
    long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3",
    long_parameter_name_4="default value var 4"
    ):

or或者

def foo(
    long_parameter_name_1,
    long_parameter_name_2="default value var 2",
    long_parameter_name_3="default value var 3",
    long_parameter_name_4="default value var 4"):

but with a preference for the first.但偏爱第一个。 (In the first case, you may also wish to include an optional trailing , after the last argument, to simplify diffs should you never add or remove a parameter.) (在第一种情况下,如果您从不添加或删除参数,您可能还希望在最后一个参数之后包含一个可选的尾随,以简化差异。)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM