[Python-Dev] Updated PEP 362 (Function Signature Object)

Yury Selivanov yselivanov.ml at gmail.com
Wed Jun 6 19:28:23 CEST 2012


On 2012-06-06, at 1:13 PM, Alexandre Zani wrote:
> A question regarding the name. I have often seen the following pattern
> in decorators:
> 
> def decor(f):
>    def some_func(a,b):
>        do_stuff using f
>    some_func.__name__ = f.__name__
>    return some_func
> 
> What are the name and fully qualified names in the signature for the
> returned function? some_func.__name__ or f.__name__?

Never copy attributes by hand, always use 'functools.wraps'.  It copies
'__name__', '__qualname__', and bunch of other attributes to the decorator 
object.

We'll probably extend it to copy __signature__ too; then 'signature(decor(f))'
will be the same as 'signature(f)'.

-
Yury


More information about the Python-Dev mailing list