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

Nick Coghlan ncoghlan at gmail.com
Fri Jun 8 06:41:13 CEST 2012


On Fri, Jun 8, 2012 at 2:20 PM, Alexandre Zani <alexandre.zani at gmail.com> wrote:

A comment on the way methods are handled. I have seen decorators that do something like this:

import functools def dec(f):  functools.wraps(f)  def decorated(*args, *kwargs):  cursor = databaseCursor()  return f(cursor, *args, **kwargs) As a result, if the decorated function has to be something like this: class SomeClass(object):  @dec  def func(cursor, self, whatever): ... Perhaps the decorator should be smarter about this and detect the fact that it's dealing with a method but right now, the Signature object would drop the first argument (cursor) which doesn't seem right. Perhaps the decorator should set signature. I'm not sure.

The decorator should set signature, since the API of the underlying function does not match the public API. I posted an example earlier in the thread on how to do that correctly.

Cheers, Nick.

-- Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-Dev mailing list