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)

The main benefit I see is that an 'update_info' method is more future-proof. If some other attributes are added to function objects that should be preserved, update_info() can be updated in parallel to transfer them, and any code using the method continues to be correct.

Regards,
Nick.

--
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---------------------------------------------------------------
            http://boredomandlaziness.skystorm.net
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to