打卡第28天:装饰器
知识点回顾
- 装饰器的思想:进一步复用
- 函数的装饰器写法
- 注意内部函数的返回值
作业
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
实现示例
以下是一个符合要求的装饰器 logger
的代码示例,展示如何记录函数名、参数和返回值:
def logger(func):def wrapper(*args, **kwargs):print(f"开始执行函数{func.__name__}, 参数:{args}, {kwargs}")result = func(*args, **kwargs)print(f"返回的函数{func.__name__}, 返回的参数:{result}")return resultreturn wrapper
@logger
def mutiple(a, b):return a * b
mutiple(2, 3)
注意的点:
1、func函数时logger装饰器函数的参数,而wrapper函数是装饰后的函数,就是原函数经过装饰后的样子。
2、**这个符号是解包过程,是指将参数传递给func函数。
@浙大疏锦行