Function decorator
Function decorator
def decorator_function(original_function):
def wrapper_function(*arge, **kwargs):
print('wrapper executed this before {}'.format(original_function.__name__))
return original_function(*arge, **kwargs)
return wrapper_function
@decorator_function
def display():
print('display function ran')
@decorator_function
def display_info(name, age):
print('display_info ran with arguments ({}, {})'.format(name,age))
display_info('John', 25)
display()
# display = decorator_function(display) equal to @decorator_functionExample: log file
def my_logger(orig_func):
import logging
logging.basicConfig(filename='{}.log'.format(orig_func.__name__), level=logging.INFO)
def wrapper(*args, **kwargs):
logging.info(
'Ran with args:{}, and kwargs: {}'.format(args, kwargs))
return orig_func(*args, **kwargs)
return wrapper
@my_logger
def display_info(name, age):
print('display_info ran with arguments ({}, {})'.format(name,age))
display_info('John', 25)Example: timer
Class decorator
Last updated
Was this helpful?