Python是否为分配给多行函数值的变量设置了正确的缩进?

Python是否为分配给多行函数值的变量设置了正确的缩进?,python,syntax,indentation,Python,Syntax,Indentation,设置为多行函数输出的变量的正确缩进是什么 我看到它被推到等号,像这样: dept_alias_valid = RegexValidator( '^(?!.*--)(?!.*__)(?!.*-_)(?!.*_-)([@]+[a-z][a-z\-_]+[a-z]+)$', "Alias must: start with @ and the remainder can contain only lowercase letters

设置为多行函数输出的变量的正确缩进是什么

我看到它被推到等号,像这样:

dept_alias_valid = RegexValidator(
                  '^(?!.*--)(?!.*__)(?!.*-_)(?!.*_-)([@]+[a-z][a-z\-_]+[a-z]+)$', 
                  "Alias must: start with @ and the remainder can contain only lowercase letters a-z _underscores -dashes with neither trailing nor back-to-back special characters and spaces are right out!"
                   )
dept_alias_valid = RegexValidator(
  '^(?!.*--)(?!.*__)(?!.*-_)(?!.*_-)([@]+[a-z][a-z\-_]+[a-z]+)$', 
  "Alias must: start with @ and the remainder can contain only lowercase letters a-z _underscores -dashes with neither trailing nor back-to-back special characters and spaces are right out!"
)
我也看到过这样的情况:

dept_alias_valid = RegexValidator(
                  '^(?!.*--)(?!.*__)(?!.*-_)(?!.*_-)([@]+[a-z][a-z\-_]+[a-z]+)$', 
                  "Alias must: start with @ and the remainder can contain only lowercase letters a-z _underscores -dashes with neither trailing nor back-to-back special characters and spaces are right out!"
                   )
dept_alias_valid = RegexValidator(
  '^(?!.*--)(?!.*__)(?!.*-_)(?!.*_-)([@]+[a-z][a-z\-_]+[a-z]+)$', 
  "Alias must: start with @ and the remainder can contain only lowercase letters a-z _underscores -dashes with neither trailing nor back-to-back special characters and spaces are right out!"
)

这取决于你所说的“适当”是什么意思


就目前而言,这两种风格都是有效的

…但由于其他原因,你的两个例子都是无效的


第二个缩进2个空格,而第一个缩进19个空格,但是:

每个缩进级别使用4个空格

(不完全清楚“更多缩进”是否应该是一个固定数量的缩进级别,但我很确定这就是目的。)

然而,它也说:

4-空间规则对于连续行是可选的

当然,所有的PEP8都是可选的,尤其是对于不适用于stdlib的代码,但这显然是特别可选的


它们都超出了窗户的右边缘:

将所有行限制为最多79个字符

对于结构限制较少的长文本块(docstring或comments),行长度应限制为72个字符


第一个将结束价放在错误的位置:

多行结构上的右大括号/方括号/圆括号可以在列表最后一行的第一个非空白字符下对齐,如下所示:

…也可以在开始多行构造的行的第一个字符下对齐,如中所示:

你的第二个例子第二个版本是正确的;您的第一个示例的第一个版本是错误的


但是,第二种样式(正确地固定为使用4-空格缩进)有一个明显的优点:将其拆分为多行的全部原因是为了更容易将文本放入窗口(即使您没有成功)。第一种样式每行额外浪费14个字符,因此效果较小


还值得注意的是,和其他自动代码格式化程序会将您的第一个示例更改为第二个示例(同样,除非有4个空格的缩进)。

取决于您所说的“正确”的含义


就目前而言,这两种风格都是有效的

…但由于其他原因,你的两个例子都是无效的


第二个缩进2个空格,而第一个缩进19个空格,但是:

每个缩进级别使用4个空格

(不完全清楚“更多缩进”是否应该是一个固定数量的缩进级别,但我很确定这就是目的。)

然而,它也说:

4-空间规则对于连续行是可选的

当然,所有的PEP8都是可选的,尤其是对于不适用于stdlib的代码,但这显然是特别可选的


它们都超出了窗户的右边缘:

将所有行限制为最多79个字符

对于结构限制较少的长文本块(docstring或comments),行长度应限制为72个字符


第一个将结束价放在错误的位置:

多行结构上的右大括号/方括号/圆括号可以在列表最后一行的第一个非空白字符下对齐,如下所示:

…也可以在开始多行构造的行的第一个字符下对齐,如中所示:

你的第二个例子第二个版本是正确的;您的第一个示例的第一个版本是错误的


但是,第二种样式(正确地固定为使用4-空格缩进)有一个明显的优点:将其拆分为多行的全部原因是为了更容易将文本放入窗口(即使您没有成功)。第一种样式每行额外浪费14个字符,因此效果较小


还值得注意的是,和其他自动代码格式化程序会将第一个示例更改为第二个示例(同样,除非使用4个空格的缩进)。

PEP8:嗯,您需要的是四个空格,而不是两个。但除此之外,第二个通常更好。毕竟,你把它分成多行的原因是为了每行有更多的空间,所以你不必超过72/79/99个字符,那么为什么还要浪费每行额外的14个字符呢?PEP8:嗯,你想要四个空格,而不是两个。但除此之外,第二个通常更好。毕竟,你把它分成多行的原因是为了每行有更多的空间,所以你不必超过72/79/99个字符,那么为什么还要浪费每行额外的14个字符呢?谢谢分享黑色。我想知道如何将我所有的代码压缩到4个空格。@HashRocketSyntax你要么喜欢黑色,要么讨厌黑色。如果您讨厌它,请尝试yapf,它是一个可配置的格式化程序,而不是doit-my-way或else。(但是如果你能习惯这样的想法,当黑色使你的代码变得丑陋时,这意味着你必须重新组织你的代码,我更喜欢它。特别是在一个团队中,每个人都希望以不同的方式配置yapf…)感谢分享黑色。我想知道如何将我所有的代码压缩到4个空格。@HashRocketSyntax你要么喜欢黑色,要么讨厌黑色。如果您讨厌它,请尝试yapf,它是一个可配置的格式化程序,而不是doit-my-way或else。(但是如果你能习惯这样一种想法,即当黑色使你的代码变得丑陋时,这意味着你必须重新组织你的代码,我更喜欢它。特别是在一个团队中,每个人都希望以不同的方式配置yapf…)
my_list = [
    1, 2, 3,
    4, 5, 6,
]