Ненужный пропуск при определении исключений

#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 его , потому что комментарии не должны иметь никакого значения для кода.