Skip to content

Instantly share code, notes, and snippets.

@musleh0001
Created February 28, 2022 07:39
Show Gist options
  • Save musleh0001/a1c5ca4ba3c8fa3013f3af877cb45cda to your computer and use it in GitHub Desktop.
Save musleh0001/a1c5ca4ba3c8fa3013f3af877cb45cda to your computer and use it in GitHub Desktop.
Decorator Example
from functools import wraps
def my_logger(orig_func):
import logging
logging.basicConfig(
filename="{}.log".format(orig_func.__name__), level=logging.INFO
)
@wraps(orig_func)
def wrapper(*args, **kwargs):
logging.info(f"Ran with args: {args}, and kwargs: {kwargs}")
return orig_func(*args, **kwargs)
return wrapper
def my_timer(orig_func):
import time
@wraps(orig_func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = orig_func(*args, **kwargs)
end = time.perf_counter()
print(f"{orig_func.__name__} ran in: {end - start:.4f} sec")
return wrapper
@my_logger
@my_timer
def display_info(name, age):
print(f"display_info run with arguments ({name}, {age})")
# display_info = decorator_function(display_info)
display_info("Khan", 23)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment