带参数的函数装饰
25.2 带参数的函数装饰
wrapper 接收 *args, **kwargs。
本节介绍「带参数的函数装饰」的用法与注意点,请结合下方代码示例理解。
建议:先读懂注释,再自己动手修改数字或文字,观察输出变化。
💡 遇到报错先看最后一行英文提示,再对照「常见错误与正确对比」。
通用 wrapper
以下代码含详细中文注释,可直接复制运行。建议对照输出理解每一行的作用。
# ========================================
# 示例:通用 wrapper
# 说明:建议复制到 .py 文件运行,或粘贴到 Python 交互模式
# ========================================
def log(func): # 定义函数
def wrapper(*args, **kwargs):
print(f'调用 {func.__name__}')
return func(*args, **kwargs)
return wrapper
@log
def add(a, b): # 定义函数
return a + b
print(add(2, 3)) # 输出到屏幕 / 从键盘读入