[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