When you use a decorator, you're replacing one function with another. In other words, if you have a decorator
def logged(func):
    def with_logging(*args, **kwargs):
        print(func.__name__ + " was called")
        return func(*args, **kwargs)
    return with_logging
then when you say
@logged
def f(x):
   """does some math"""
   return x + x * x
…
    
Top comments (0)