知识点回顾:
- 装饰器的思想:进一步复用
- 函数的装饰器写法
- 注意内部函数的返回值
作业:
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
def logger(func):
def wrapper(*args, **kwargs):
# 执行前:打印函数名和参数
print(f"[Before] Function '{func.__name__}' called with args: {args}, kwargs: {kwargs}")
# 执行原函数并获取结果
result = func(*args, **kwargs)
# 执行后:打印返回值
print(f"[After] Function '{func.__name__}' returned: {result}")
return result # 确保返回原函数的结果
return wrapper
# 测试示例
@logger
def add(a, b):
return a + b
@logger
def multiply(a, b=10):
return a * b
# 调用测试
add(3, 5)
multiply(4, b=6)
7906

被折叠的 条评论
为什么被折叠?



