python: имена декораторов должны быть действиями или описаниями?
Скажем, у меня есть декоратор, который заставляет функцию распечатывать любые исключения и возвращать None, если возникает исключение, вместо сбоя. Если это хорошая идея, какой стиль именования предпочтителен?
а)
@ignore_exceptions
def foobar(a, b, c):
raise ValueError("This function always fails...")
б)
@ignores_exceptions
def foobar(a, b, c):
raise ValueError("This function always fails...")
То есть: должно ли это a)
быть командой (декоратор говорит функции делать что-то другое), или b)
описание (декоратор позволяет программисту узнать атрибут функции)?
2 ответа
Думаю активная версия (ignore_exceptions
) больше используется, чем описательная версия (ignores_exceptions
), по крайней мере, в базах кода Python, с которыми я знаком.
В руководстве по PEP 8 есть раздел, посвященный соглашениям о присвоении имен, но в этом случае он не оказывает большой помощи. В любом случае, согласованность всей вашей кодовой базы является наиболее важной вещью.
Я бы сказал, что ignore_exceptions
здесь лучше, просто исходя из того, что я вижу на странице http://wiki.python.org/moin/PythonDecoratorLibrary.
Некоторые примеры названий декораторов countcalls
а также dump_args
, что более соответствует ignore_exceptions
чем ignores_exceptions
,
Последовательность - действительно единственная причина, чтобы выбрать одно из другого, поскольку оба проясняют, что происходит.