#python #python-3.x #pylint
Вопрос:
Часто я буду писать общее исключение, такое как следующее:
class MyException(Exception):
"My custom exception."
pass
Таким образом, я могу проверить, является ли это исключение тем, которое мне нужно, в чем-то вроде try/except
блока. И все же pylint
жалуется на это следующим образом:
ненужный пропуск: Ненужный пропуск
В чем причина этой жалобы? И есть ли более предпочтительный способ сделать это выше? Даже документы python предлагают использовать что-то подобное для определяемого пользователем исключения:
class Error(Exception):
"""Base class for exceptions in this module."""
pass
Комментарии:
1. Интерпретатор CPython имеет аргумент командной строки оптимизации
-OO
, который игнорирует строки документов.
Ответ №1:
Обоснование заключается в том, что строковый литерал является допустимым оператором Python в теле класса, поэтому pass
для отображения отступа не требуется.
Это проблема стиля, поэтому нет окончательного ответа на то, как это исправить. Если вы считаете, что pass
это полезно, я предлагаю отключить это предупреждение в pylint.
Комментарии:
1. Я понимаю, спасибо, что указали на это. По вашему мнению, как бы вы с этим справились?
2. Лично я, поскольку строка документа является фактическим утверждением, которое имеет полезный эффект, я бы счел
pass
это излишним и исключил его. Если бы единственной строкой в тексте был комментарий, я бы включилpass
его , потому что комментарии не должны иметь никакого значения для кода.