关于隐式和显式线连接的建议


9

我想知道有关Python中的隐式连接显式连接的建议。

特别是,您是否偏爱一种形式?您推荐什么作为一般默认设置?您有什么条件来选择一个,另一个,如果您偏爱一个,那么何时为另一个设置例外?

对于这个问题,我有一个反映我自己偏见的答案,但是在发布自己的答案之前,我想知道其他人的想法……如果您可以拥有一套比我的想法更好的标准,那么我一定会接受您的回答。

有些建议可能会在其他编程语言中推广到这种选择,但是由于某些特定于语言的功能,我自己的偏见在Python中会更强一些,因此我想知道您可能会采用的一般性推理和以Python为中心的推理关于这个话题。

在某些背景下,讨论是围绕一个关于stackoverflow特定问题进行的,但是我认为将讨论移至此处是一个更合适的问题,以避免由于这个切线使SO的答案变得混乱,因为它已经偏离了主题。原来的问题。您可以查看该问题及其答案,以获取开始讨论的示例代码片段。

这是一个简化的示例:

join_type = "explicit"
a = "%s line joining" \
    % (join_type)
# versus
join_type = "implicit"
b = ("%s line joining"
     % (join_type))

最佳实践问题不在代码审查范围之内。我已将您的问题转移到一个更好的地方。
温斯顿·埃韦特

1
@WinstonEwert在发布之前,我对CodeReview FAQProgrammers FAQ进行了很好的了解,我选择了CodeReview,因为它明确表示要问的问题包括“代码中的最佳实践和设计模式使用情况”。我包括了所讨论代码的简化版本,那么这离题如何呢?
aculich 2011年

@WinstonEwert我在Meta中发布了一个有关澄清CodeReview FAQ的问题,如果您想在那儿对此发表评论。
aculich 2011年

Answers:


8

有一个称为PEP8的编码样式文档。建议不要在\<NL>任何可以使用括号的地方使用。

包装长行的首选方法是在括号,方括号和花括号内使用Python的隐含行连续性。通过将表达式包装在括号中,可以将长行分成多行。应优先使用这些,而不是使用反斜杠进行行连续。确保适当缩进续行。围绕二进制运算符的首选位置是运算符之后,而不是在运算符之前。

全文:http : //www.python.org/dev/peps/pep-0008/(部分代码布局)

它不是强制性的,但它定义了可接受的良好实践,如果您的团队中有多个Python提交者,则特别有用。


1

我倾向于使用隐式行连接,因为我发现它更易读,并且由于括号的匹配,通常在整个缩进和突出显示方面,编辑人员的支持通常更好。


0

目前,我希望

join_type = "kiding"
a = "%s line joining" % (join_type)

B-))

我倾向于使用“显式行连接”,因为我不喜欢表达式末尾的混乱状态。
但是我喜欢使用隐式行连接来减少写字符串所占用的宽度。
然后在某些情况下,我很尴尬地不将两种方式混合使用


1
除了开玩笑之外,我不喜欢显式联接,因为它需要更多的输入,并且在编辑代码时很难将所有反斜杠整齐地排列在一起。
martineau

显然,@ eyquem从未写过任何LISP ...
cowbert
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.