python 括号 垃圾_用Python关闭括号

博客讨论了在遵循PEP8编码规范时,对于多行语句中闭合括号的定位问题。作者指出了PEP8中的某些示例可能存在矛盾,并分享了个人偏好。文章提到了两种主要风格:一种是将闭合括号与参数对齐,另一种是与开始括号对齐。作者倾向于避免垂直对齐,因为它依赖于特定的空格数量,而更倾向于使用双缩进来区分函数体。在函数调用和赋值中,PEP8没有明确的最佳实践,作者提供了不同的示例并阐述了自己的观点。
摘要由CSDN通过智能技术生成

PEP 8有相互矛盾的代码示例(在我看来),我很好奇定位闭括号的惯例是什么.

indentation的顶部,它们与参数在同一条线上.在底部附近讨论定位,而是说:

The closing brace/bracket/parenthesis on multiline constructs may

either line up under the first non-whitespace character of the last

line of list[…] or it may be lined up under the first character of the

line that starts the multiline construct[…]

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

你在哪里通常将你的结束括号放在多行语句中,你认为在惯例方面最佳做法是什么?

为了清楚起见,这里是代码示例,它们展示了这些差异.

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',

)

你提到的两个部分是不同的,第一部分是关于一个块后面的连续行(例如多行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背景,我使用第二个选项.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值