Day27
装饰器(难)
def logger(func):def wrapper(*args, **kwargs):# 打印函数开始执行的日志print(f"Starting {func.__name__} with args: {args}, kwargs: {kwargs}")# 执行原函数result = func(*args, **kwargs)# 打印函数执行结束的日志print(f"Finished {func.__name__}, returned: {result}")return resultreturn wrapper# 测试示例
@logger
def add(a, b):return a + b@logger
def multiply(a, b=1):return a * b# 执行测试函数
add(3, 5)
multiply(4, b=2)
multiply(10)
Starting add with args: (3, 5), kwargs: {} Finished add, returned: 8 Starting multiply with args: (4,), kwargs: {'b': 2} Finished multiply, returned: 8 Starting multiply with args: (10,), kwargs: {} Finished multiply, returned: 10
10
@浙大疏锦行