装饰器 Python · 装饰器
装饰器是一种特殊函数,用来修改其他函数或类。它通常用 `@装饰器名` 放在函数或类定义前,本质上是把函数传递给装饰器,然后使用返回的新函数。就像给一个东西加一层包装,增强了它的功能,但不改变其核心。
怎么用
@装饰器
def 函数():
...
小例子
def 计时器(func):
import time
def wrapper():
开始 = time.time()
func()
结束 = time.time()
print(f"耗时 {结束 - 开始} 秒")
return wrapper
@计时器
def 慢函数():
import time
time.sleep(1)
print("执行完毕")
慢函数()
运行结果
执行完毕 耗时 1.000... 秒
常见使用场景
- 日志记录。 - 性能计时。 - 权限校验。 - 缓存。 - 内置装饰器如 `@staticmethod`、`@classmethod`、`@property`。
提醒:- 装饰器可以带参数,需要额外包装。 - 使用 `functools.wraps` 保留原函数元信息。
官方文档:https://docs.python.org/zh-cn/3/glossary.html#term-decorator
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Python全部词条