On 6 Jun 2012, at 18:28, Yury Selivanov wrote: > 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)'. >
I don't think functools.wraps can copy the signature by default - it's not uncommon to have decorators that modify signatures. A new parameter to functools.wraps defaulting to False? Michael > - > Yury > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk > -- http://www.voidspace.org.uk/ May you do good and not evil May you find forgiveness for yourself and forgive others May you share freely, never taking more than you give. -- the sqlite blessing http://www.sqlite.org/different.html _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com