无法通过不合理的pep8错误

11 投票
3 回答
8324 浏览
提问于 2025-04-17 23:04

我已经尝试了很久想要解决这个问题,但就是无法通过pep8的检查。以下是我的代码:

1.

if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and 
    sum(regex.count(char) for char in splitter) == 1 and 
    regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')
if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and 
    sum(regex.count(char) for char in splitter) == 1 and 
    regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')
if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' 
    and regex.count('(') > 1):
        
    print('hi')

我在每个3个if语句上都收到了PEP8的错误提示:

E125 continuation line does not distinguish itself from next logical line

你知道哪里出问题了吗?这些行是用括号缩进的,所以我真的不知道该怎么解决。

3 个回答

-1

我并不是说我特别喜欢这个解决方案,但我觉得把if后面的空格去掉,比起把第二行和len调用的内容对齐,妥协的程度要小一些,就像这里其他答案所建议的那样:

if(len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and
   sum(regex.count(char) for char in splitter) == 1 and
   regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')
2

我正在使用PyCharm(这个工具在指出PEP8错误方面非常不错)来进行编辑,它说这个版本是可以的:

if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and
        sum(regex.count(char) for char in splitter) == 1 and
        regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')
28

1.

if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and
        sum(regex.count(char) for char in splitter) == 1 and
        regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')

2.

if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')' and
        sum(regex.count(char) for char in splitter) == 1 and
        regex.count('(') == 1 and regex.count(')') == 1):

    print('hi')

3.

if (len(regex) > 2 and regex[0] == '(' and regex[-1] == ')'
        and regex.count('(') > 1):

    print('hi')

撰写回答