Это зависит от того, для чего (или для кого) вы пишете строку документации. Для автоматического преобразования в документацию по API мне нравятся строки документации в стиле Google, которые будет выглядеть так:
def inv(a):
"""Return the inverse of the argument.
Arguments:
a (int): The number to invert.
Returns:
float: The inverse of the argument.
Raises:
TypeError: If 1 cannot be divided by the argument.
ZeroDivisionError: If the argument is zero.
"""
return 1 / a
Здесь я включил все исключения, которые может вызвать функция. Обратите внимание, что нет необходимости явно raise ZeroDivisionError
- это произойдет автоматически, если вы попытаетесь разделить на ноль.
Однако, если вы не создаете документацию из строки документации, я бы, вероятно, просто включил строку описания для такой простой функции:
def inv(a):
"""Return the inverse of the argument."""
return 1 / a
Любой, кто его использует, вероятно, знает, что вы не можете инвертировать, например. струны.
Я не хочу проверять здесь типы, правильно?
Я бы не стал - если пользователь после прочтения вашей документации решит пройти, например. строку в функцию, которую они должны ожидать для получения TypeError
, и нет никакого смысла тестировать тип аргумента, чтобы затем самостоятельно вызвать то же самое исключение, которое в любом случае было бы вызвано кодом (опять же, см. также ZeroDivisionError
! ) То есть, если, например, float
или complex
числа должны быть недействительными, и в этом случае вам придется обрабатывать их вручную.
person
jonrsharpe
schedule
21.10.2015