超过行长度时缩进

2024-04-19 06:47:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我理解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

但是当主体和条件处于相同的缩进级别时,会出现一个错误。你知道吗


Tags: orkeyselfeventmessageif规则def
2条回答

我通常的解决方法是,如果我在开始一个新的缩进级别之前继续一行,将继续两个缩进向内,而不是一个缩进:

def OnKeyDownEvent(self, event):
    if (event.Message == HookConstants.WM_KEYDOWN or
            event.Message == HookConstants.WM_KEYDOWN):
        self.count_key_down += 1

或者,如果我列举了一个列表,无论列表从哪里开始——以页面上更右边的为准。我还将操作符放在initial行上,而不是continued行上,以向读者和解释器表明表达式尚未结束。在您的代码中,您将整个表达式括在括号中,这也起到了同样的作用。你知道吗

你可以用你觉得最清楚的方式来标记你的代码,然后在一个linter中运行它,这个linter会在事后重新格式化你的代码,使之符合PEP8标准。你知道吗


特定的情况下,编写此条件的更简洁的方法是

def onKeyDownEvent(self, event):
    if event.Message in [HookConstants.WM_KEYDOWN, HookConstants.WM_KEYDOWN]:
        self.count_key_down += 1

对于“if x==this或this或this”条件,这通常是一个很好的解决方案,并且比编写多个if语句更简洁。不过,这更为具体。你知道吗

没有单一的官方途径,必须遵循PEP8的指导方针。你知道吗

有一个叫做Black的代码格式化程序正在变得非常流行,你可以试试它here。它将您的代码格式化为:

def OnKeyDownEvent(self, event):
    if (
        event.Message == HookConstants.WM_KEYDOWN
        or event.Message == HookConstants.WM_KEYDOWN
    ):
        self.count_key_down += 1

可能是因为如果您在条件中添加了另一个子句,那么产生的差异将是最小的,即只添加一行,没有删除或更改。你知道吗

相关问题 更多 >