About Preserving Decorated Function Names and Docstrings
Use the functools.wraps
decorator when creating function decorators in
Python to preserve decorated function names, docstrings, and argument lists:
from functools import wraps
def verbose(func):
@wraps(func)
def with_verbose_output(*args, **kwargs):
print(f"Calling {func.__name__}()…")
return func(*args, **kwargs)
return with_verbose_output
@verbose
def add(x, y):
"""Adds two numbers"""
return x + y
print(add.__name__)
print(add.__doc__)
Also by me
Django Paddle Subscriptions app
For Django-based SaaS projects.
Django App for You
Django GDPR Cookie Consent app
For Django websites that use cookies.
Django App for You