Function name unchanged in error message
Peter Otten
__peter__ at web.de
Sat Jan 30 04:28:19 EST 2010
Gabriel Genellina wrote:
> En Fri, 29 Jan 2010 13:09:40 -0300, Michele Simionato
> <michele.simionato at gmail.com> escribió:
>
>> On Jan 29, 2:30 pm, andrew cooke <and... at acooke.org> wrote:
>>> Is there any way to change the name of the function in an error
>>> message? In the example below I'd like the error to refer to bar(),
>>> for example (the motivation is related function decorators - I'd like
>>> the wrapper function to give the same name)
>>
>> Use the decorator module which does the right thing:
>> http://pypi.python.org/pypi/decorator
>
> The decorator module is a very fine addition to anyone's tool set -- but
> in this case it is enough to use the wraps() function from the functools
> standard module.
I don't know about the decorator module, but functools.wraps() doesn't
affect the error message:
>>> from functools import wraps
>>> def f(): pass
...
>>> @wraps(f)
... def g(): pass
...
>>> g.__name__
'f'
>>> try: g(42)
... except TypeError as e:
... print e
...
g() takes no arguments (1 given)
Peter
More information about the Python-list
mailing list