Соглашение о кодировании 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. В зависимости от редактора неуместные вкладки могут не сразу отображаться.