125. Decorators with Arguments
def greet(message):
def decorator(func):
def wrapper(*args, **kwargs):
print(message)
return func(*args, **kwargs)
return wrapper
return decorator
@greet("Hello, World!")
def say_name(name):
print(f"My name is {name}")
say_name("John") # Output: Hello, World! My name is Johndef log_function_calls(log_message):
def decorator(func):
def wrapper(*args, **kwargs):
print(f"{log_message} - Calling function: {func.__name__}")
result = func(*args, **kwargs)
print(f"{log_message} - Function {func.__name__} completed")
return result
return wrapper
return decorator
@log_function_calls("LOG")
def add(x, y):
return x + y
add(2, 3)Last updated