2012-06-15 7 views
4

Скажем, у меня есть декоратор, который заставляет функцию распечатывать любые исключения и возвращать None, если происходит исключение, вместо отказа. Предполагая, что это хорошая идея, какой предпочтительный стиль именования?python: должны ли имена декораторов быть действиями или описаниями?

)

@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) описание (декоратор позволяет прогамеру знать атрибут функции)?

+0

Ну, б) собирается распечатать NameError, потому что, вероятно, нет такого типа, как «ValeuError». :) Но это не серьезный вопрос. – abarnert

+0

@abarnert: hah, really = P. исправлено – Claudiu

ответ

5

Я думаю, что активная версия (ignore_exceptions) больше используется, чем описательная версия (ignores_exceptions), по крайней мере, в базовых кодах Python, с которыми я знаком.

В руководстве PEP 8 есть раздел на naming conventions, но в этом случае он не предлагает большой помощи. В любом случае, согласованность между вашей базой кода является самой важной вещью.

2

Я бы сказал, что ignore_exceptions здесь лучше, просто на основе того, что я вижу на странице PythonDecoratorLibrary.

Некоторые имена декоратор примеры используются есть countcalls и dump_args, которая в большей степени соответствует ignore_exceptions чем ignores_exceptions.

Консистенция - это единственная причина выбора одного над другим, поскольку оба дают понять, что происходит.

+0

На самом деле, просматривая примеры, похоже, что большинство из них - описания (свойство, memoized, curried и т. д.) - за исключением случая, когда существует очевидный глагол действия, и в этом случае они используют это (countcalls, apply , и т.д.). Это не так непротиворечиво, но если вы хотите быть в согласии с этим, я думаю, что ignore_exceptions лучше. – abarnert

Смежные вопросы