Python编码约定"在块之前错误的持续缩进:由pylint找到

时间:2014-12-14 04:17:52

标签: python coding-style pylint

我使用pylint来检查我的python代码,并发现了这个约定问题:

C:11, 0: Wrong continued indentation before block.
                    + this_time <= self.max):
                    ^   | (bad-continuation)

我试着改进时间,但问题仍然存在,有人可以帮忙吗?谢谢!

if len(remaining_obj_list) > 0:
    for i in a_list:
        this_time = self.__get_time(i)
        for remaining_obj in remaining_obj_list:
            if (remaining_obj.get_time() # to fit 78 char rule
                + this_time <= self.max):
                i.append(remaining_obj)
                remaining_obj.set_used(True)
        if 0 == len(self.__get_unused_list):
            break

4 个答案:

答案 0 :(得分:30)

Pylint不希望这种延续与下一个缩进块在同一列上启动。另请注意,该消息包含其认为正确的列的提示。

答案 1 :(得分:2)

尝试将+放在上一行:

        if (remaining_obj.get_time() +
            this_time <= self.max):

作为旁注,您可能想要考虑导致代码必须符合~40个字符的因素 - 也许您有一些太多的缩进级别,并且您的代码可以重构为具有更少的嵌套块

答案 2 :(得分:0)

根据PEP8:“打破二元运算符的首选位置是在运算符之后,而不是在它之前。”

尝试将该加号移至上一行。

答案 3 :(得分:0)

检查伪造的选项卡(在Sublime中:Ctrl + F,然后输入一个空格),并用正确数量的空格替换它们。我遇到了同样的问题,当PyLint抱怨行继续时,该错误实际上是由错位的制表符触发的。

缩进时,PyLint似乎仅对空格进行计数,如果数字加起来不等于4的倍数,则会引发此错误。根据不同的编辑器,放错位置的标签可能不会立即可见。