[Python-Dev] Re: @deprecated (was: Useful thread project for 2.5?)
Reinhold Birkenfeld
reinhold-birkenfeld-nospam at wolke7.net
Fri Mar 11 17:23:43 CET 2005
Nick Coghlan wrote:
> Raymond Hettinger wrote:
>> Decorators like this should preserve information about the underlying
>> function:
>>
>>
>>> def deprecated(func):
>>> """This is a decorator which can be used to mark functions
>>> as deprecated. It will result in a warning being emmitted
>>> when the function is used."""
>>> def newFunc(*args, **kwargs):
>>> warnings.warn("Call to deprecated function.")
>>> return func(*args, **kwargs)
>>
>> newFunc.__name__ = func.__name__
>> newFunc.__doc__ = func.__doc__
>> newFunc.__dict__.update(func.__dict__)
>>
>>> return newFunc
>
> A utility method on function objects could simplify this:
> newFunc.update_info(func)
+1. This is really good for 90% of all decorator uses. But maybe a
better name should be found, perhaps "update_meta".
Reinhold
--
Mail address is perfectly valid!
More information about the Python-Dev
mailing list