decorators only when __debug__ == True
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Wed Mar 31 18:53:51 EDT 2010
On Wed, 31 Mar 2010 22:27:05 +0100, MRAB wrote:
> LX wrote:
[...]
>> It looks to me the call stack still includes the additional level of
>> the decorator... what am I missing? Thank you for your time.
>
> Are you still defining your decorators in the same way as in your
> original post?
>
> A decorator shouldn't call the function it's decorating.
*raises eyebrow*
Surely, in the general case, a decorator SHOULD call the function it is
decorating? I'm sure you know that, but your wording is funny and could
confuse the OP.
In this specific case, where the OP wants a "do nothing pass-decorator",
he should do this:
def decorator(func):
if __debug__:
...
else:
return func
rather than this:
def decorator(func):
if __debug__:
...
else:
def inner(*args):
return func(*args)
return inner
--
Steven
More information about the Python-list
mailing list