Can I undecorate a function?

Steve Holden steve at holdenweb.com
Mon Jan 29 13:29:22 EST 2007


Matthew Wilson wrote:
> The decorator as_string returns the decorated function's value as
> string.  In some instances I want to access just the function f,
> though, and catch the values before they've been decorated.
> 
> Is this possible?
> 
> def as_string(f):
>     def anon(*args, **kwargs):
>         y = f(*args, **kwargs)
>         return str(y)
>     return anon
> 
> @as_string
> def f(x):
>     return x * x
> 
It's much simpler not to use the decorator syntax if you also want 
access to the original function.

Simply declare f as a function, then assign decorator(f) to some other name.

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd          http://www.holdenweb.com
Skype: holdenweb     http://del.icio.us/steve.holden
Blog of Note:          http://holdenweb.blogspot.com
See you at PyCon?         http://us.pycon.org/TX2007




More information about the Python-list mailing list