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,

Последовательность - действительно единственная причина, чтобы выбрать одно из другого, поскольку оба проясняют, что происходит.

Другие вопросы по тегам