我了解Python中的缩进规则,直到您开始发现行数超出行长限制且需要继续之前。
如果不允许我在一行中包含超过100个字符,缩进以下代码的正式,最简洁的方法是什么?
def OnKeyDownEvent(self, event):
if (event.Message == HookConstants.WM_KEYDOWN or event.Message == HookConstants.WM_KEYDOWN):
self.count_key_down += 1
我会尝试:
def OnKeyDownEvent(self, event):
if (event.Message == HookConstants.WM_KEYDOWN
or event.Message == HookConstants.WM_KEYDOWN):
self.count_key_down += 1
但是在主体和条件处于相同缩进级别的情况下会出现错误。
答案 0 :(得分:3)
我通常的解决方案是,如果我在开始新的缩进级别之前继续行,则将延续两个缩进放到内部,而不是一个缩进:
def OnKeyDownEvent(self, event):
if (event.Message == HookConstants.WM_KEYDOWN or
event.Message == HookConstants.WM_KEYDOWN):
self.count_key_down += 1
,或者,如果我要枚举某物的列表,则无论该列表从何处开始-以页面上更右侧的那个为准。我还将运算符放在 initial 行上,而不是在 continuing 行上,以使读者和解释器都清楚该表达式尚未结束。在您的代码中,您将整个表达式括在括号内,这具有相同的目的。
您可以注释代码,但是感觉最清晰,然后通过一个lint运行它,然后重新格式化代码,使其符合PEP8标准。
在您的具体情况中,写此条件的一种更简洁的方法是
def onKeyDownEvent(self, event):
if event.Message in [HookConstants.WM_KEYDOWN, HookConstants.WM_KEYDOWN]:
self.count_key_down += 1
通常对于“如果x == this或this或this”条件是一个很好的解决方案,并且比编写多个if
语句更简洁。不过,这更具体。
答案 1 :(得分:1)
没有任何一种官方方法,必须遵循PEP8准则。
有一个叫做Black的代码格式化程序,它变得非常流行,您可以尝试here。它会像这样格式化您的代码:
def OnKeyDownEvent(self, event):
if (
event.Message == HookConstants.WM_KEYDOWN
or event.Message == HookConstants.WM_KEYDOWN
):
self.count_key_down += 1
可能是因为如果您在条件中添加了另一个子句,则结果差异将很小,即仅添加一行,没有删除或更改。