[Python-Dev] The decorator module

Phillip J. Eby pje at telecommunity.com
Mon May 9 18:31:43 CEST 2005

At 01:08 AM 5/9/2005 -0400, Michele Simionato wrote:
>On 5/6/05, Phillip J. Eby <pje at telecommunity.com> wrote:
> > In this case, the informally-discussed proposal is to add a mutable
> > __signature__ to functions, and have it be used by inspect.getargspec(), so
> > that decorators can copy __signature__ from the decoratee to the decorated
> > function.
>Is there in the plans any facility to copy functions? Currently I am doing
>def copyfunc(func):
>     "Creates an independent copy of a function."
>     c = func.func_code
>     nc = new.code(c.co_argcount, c.co_nlocals, c.co_stacksize, c.co_flags,
>                   c.co_code, c.co_consts, c.co_names, c.co_varnames,
>                   c.co_filename, c.co_name, c.co_firstlineno,
>                   c.co_lnotab, c.co_freevars, c.co_cellvars)
>     return new.function(nc, func.func_globals, func.func_name,
>                         func.func_defaults, func.func_closure)
>and I *hate* it!

You don't need to copy the code object; functions can share the same code 
object just fine, and in fact for closures they do all the time.

More information about the Python-Dev mailing list