python
可传参数的装饰器
# 记录日志函数 # 不带参数 def log(func): def wrapper(): print("Logging execution") func() print("Finished logging") return wrapper def log_of_param(param): def decorator(func): def wrapper(): print(f"Logging with param: {param}") func() print(f"Finished logging with param: {param}") return wrapper return decorator @log # 等价于 now = log(now) @log_of_parameter('execute') # 等价于 now = log_of_parameter('execute')(now),第一步log_of_parameter('execute')返回decorator函数,第二步返回装饰后的函数 def now(): print('2024.2.4') now() # 执行结果 # Logging execution # Logging with param: execute # 2024.2.4 # Finished logging with param: execute # Finished logging