@浙大疏锦行
DAY 27 函数专题2:装饰器
知识点回顾:
1. 装饰器的思想:进一步复用
2. 函数的装饰器写法
3. 注意内部函数的返回值
作业:
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
@logger
def multiply(a, b):
return a * b
multiply(2, 3)
# 输出:
# 开始执行函数 multiply,参数: (2, 3), {}
# 函数 multiply 执行完毕,返回值: 6
def logger(func):
def wrapper(*args, **kwargs): # args 是元组,kwargs 是字典
print(f"开始执行函数 {func.__name__},参数: {args}, {kwargs}")
result = func(*args, **kwargs)
print(f"函数 {func.__name__} 执行完毕,返回值: {result}")
return result
return wrapper
@logger
def multiply(a, b):
return a * b
multiply(2, 3) # 调用 multiply 函数,观察日志输出