Соглашение о кодировании Python "Неверное продолжение отступа перед блоком: найдено с помощью 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

3 ответа

Решение

Pylint не хочет, чтобы такое продолжение начиналось в том же столбце, что и следующий блок отступов. Также обратите внимание, что сообщение содержит подсказку о столбцах, которые оно считает правильными.

Попробуйте положить + на предыдущей строке:

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

В качестве дополнительного примечания вы можете рассмотреть факторы, которые приводят к тому, что ваш код должен умещаться в ~40 символов - возможно, у вас слишком много уровней отступов, и ваш код может быть подвергнут рефакторингу, чтобы иметь меньше вложенных блоков.

Согласно PEP8: "Предпочтительное место для разбивки бинарного оператора - после оператора, а не перед ним".

Попробуйте переместить этот знак плюс на предыдущую строку.

Проверьте наличие ложных вкладок (в Sublime: Ctrl + F, затем введите один пробел) и замените их правильным количеством пробелов. У меня была такая же проблема, и хотя PyLint жаловался на продолжение строки, ошибка фактически была вызвана неуместными вкладками.

При отступах PyLint, кажется, считает только пробелы и выдает эту ошибку, если сумма чисел не кратна 4. В зависимости от редактора неуместные вкладки могут не сразу отображаться.

Другие вопросы по тегам