#python #python-3.x #flake8
#python #python-3.x #flake8
Вопрос:
Я не понимаю, почему я получил ошибку E902 flake8. Код выглядит следующим образом:
def mi_func(x):
# Asignar los valores a una lista
lista_massn = x['MASSN'].values.tolist()
lista_flag = x['UFLAG'].values.tolist()
# Obtener los valores unicos
unique_list_massn = unique_values(lista_massn)
unique_list_flag = unique_values(lista_flag
# Reglas de negocio para indicar desviaciones
if (
(len(unique_list_massn) == 1)
amp; (unique_list_massn[0] == 'XE')
amp; (max(unique_list_flag) == 0)):
result = True
else:
result = False
return result
Я думаю, что проблема заключается в операторе «if / else».
Я поместил условие в несколько строк, чтобы удовлетворить число символов <80 (flake8 E501).
Есть ли способ поместить этот оператор «if / else», удовлетворяющий обоим правилам flake8 (flake8 E501 и E902)?
Заранее спасибо!
Комментарии:
1. В качестве несвязанного предложения по стилю используйте
and
, а неamp;
при работе с True / False;amp;
это скорее математический оператор, выполняющий такие действия, как побитовое пересечение и пересечение множеств, в то времяand
как предназначен для условий.
Ответ №1:
E902 является общим для SyntaxError
s (в данном случае a TokenError
)
python или pypy дают вам более полезную синтаксическую ошибку в этом случае
$ python3 t.py
File "t.py", line 14
amp; (max(unique_list_flag) == 0)))
^
SyntaxError: invalid syntax
$ pypy3 t.py
File "t.py", line 8
unique_list_flag = unique_values(lista_flag
^
SyntaxError: parenthesis is never closed
после исправления этого код передает flake8:
$ flake8 t.py
$
Отказ от ответственности: Я сопровождающий flake8