[Python-Dev] Updated PEP 362 (Function Signature Object)
Alexandre Zani
alexandre.zani at gmail.com
Fri Jun 8 06:56:23 CEST 2012
On Thu, Jun 7, 2012 at 9:41 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
> 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.
OK, makes sense.
>> Cheers,
> Nick.
>> --
> Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
More information about the Python-Dev
mailing list