【发布时间】:2017-12-30 08:58:49
【问题描述】:
我今天不得不在一段时间条件下添加无关的括号以避免 pep8 投诉:
while not found and not something and \
(time_left is None or time_left > 0):
(one, two, three, four) = self.gimme(timeout=time_left)
我的解决方案:
while (not found and not something and
(time_left is None or time_left > 0)):
(one, two, three, four) = self.gimme(timeout=time_left)
如果我更改了第 2 行缩进,它会抱怨缩进过度或缺少缩进,每个缩进从即使是 W 到它右侧的 8 处。
我很担心添加无关的括号来满足 pep8,几乎没有提高可读性,这违反了一般原则。
有什么想法吗?我错过了更好的解决方案吗?
【问题讨论】:
-
PEP-8 建议使用括号而不是反斜杠延续,因为后者更脆弱:反斜杠后的单个杂散空格会杀死它。我同意额外的括号确实增加了一些视觉混乱,但你已经习惯了。 ;) 括号内的额外空格是合法的,我同意如果你的 IDE 或 linter 抱怨它会很烦人; OTOH,我认为如果继续的代码缩进一个缩进级别(通常是 4 个空格),它看起来会更整洁。
-
最初我留下了一个答案,但我开始认为这将导致很多固执己见的答案,而没有真正具体的“最佳”方法来做到这一点,因为它取决于味道。
-
Python 有多种编码风格。其中许多都受到YAPF 的支持,尽管我认为它不支持优先连续而不是括号。
标签: python indentation multiline pep8 continuation