wrapt¶
Special attributes of
wrapt.FunctionWrapperand derived types:__wrapped___self_instance_self_wrapper_self_enabled_self_binding_self_parent
Identify what kind of object is being decorated (necessary for “universal” decorators):
import inspect @wrapt.decorator def universal(wrapped, instance, args, kwargs): if instance is None: if inspect.isclass(wrapped): # Decorator was applied to a class. return wrapped(*args, **kwargs) else: # Decorator was applied to a function or staticmethod. return wrapped(*args, **kwargs) else: if inspect.isclass(instance): # Decorator was applied to a classmethod. return wrapped(*args, **kwargs) else: # Decorator was applied to an instancemethod. return wrapped(*args, **kwargs)