用 Python 关闭大括号

您所在的位置:网站首页 python缩进有什么用 用 Python 关闭大括号

用 Python 关闭大括号

2023-03-24 15:01| 来源: 网络整理| 查看: 265

回答问题

PEP 8有冲突的代码示例(在我看来),我很好奇定位右大括号的约定是什么。

在缩进的顶部下,它们与参数位于同一行。在底部附近,它讨论了定位,而是说:

多行结构上的右大括号/方括号/圆括号可以排列在 list[...] 最后一行的第一个非空白字符下,也可以排列在开始行的第一个字符下多行构造[...]

这直接与上面的代码示例冲突。

您通常将多行语句的右大括号放在哪里,您认为在约定方面的最佳做法是什么?

为清楚起见,这里是演示差异的代码示例。

foo = long_function_name( var_one, var_two, var_three, var_four) result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', ) result = some_function_that_takes_arguments( 'a', 'b', 'c', 'd', 'e', 'f', ) Answers

您提到的两个部分的不同之处在于,第一个部分是关于后跟一个块的延续行(例如多行def或if语句),而第二个部分是关于做作和函数调用的右大括号和括号。开始一个块时,您不希望将右括号放在下一行的开头,因为回到原始缩进会传达块的结尾。一些看起来很奇怪的例子:

def long_function_foo( var_one, var_two, var_three, var_four ): print('This code really looks out of place') def long_function_bar( var_one, var_two ): print('and so does this one')

PEP8 允许他们所谓的垂直对齐,各种 PEP 中的许多示例都使用此约定,这已成为 Python IDE 的自动化功能:

def long_function_name(var_one, var_two, var_three, var_four, var_five): """Documentation would go here, which makes it look better.""" print(var_one + var_two + var_three)

但我个人避免它。这是一个基于意见的主题,但我不喜欢通过特定数量的空格来依赖对齐。维护起来很繁琐,并且过于依赖 IDE 智能缩进。我更喜欢这种表示法,它是 PEP8 允许的,但似乎并不流行。注意用于区别函数体的双缩进:

def long_function_name( alpha, bravo, charlie, delta, echo, foxtrot, hotel, indiana): """Documentation would go here.""" print(var_one + var_two + var_three)

对于函数调用和赋值,PEP8 并没有明确的答案。人们可能会缩进右括号,作为一种模仿下一条指令缩进较少时块如何结束的方式。

foo = bar( 1, 2, 3 )

垂直对齐非常流行,我承认它看起来不错,但我不想在我的代码的未来读者身上强制缩进大小,所以我避免这种情况:

foo = bar(1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)

或者也可以将右大括号/括号左对齐:

foo = bar( 1, 2, 3 )

来自 C++、Java 和 JavaScript 背景,我使用后一种选择。从技术上讲,您也可以将右括号与参数放在同一行,但它看起来像一个缩进的代码块,对我来说太过分了,而且这不是我真正看到人们做的事情。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3