Python 装饰器:那个戴着礼帽的魔法师
装饰器就像穿衣服——你还是你,但多了点本事。早上穿T恤可以出门,穿外套保暖,戴口罩防病毒。装饰器不改变你,但让你多了点本事。
def wear_jacket(func):
def wrapper():
print("穿上外套")
return func()
return wrapper
@wear_jacket
def go_outside():
print("出门了")
go_outside()实际用途:记时、权限检查、日志记录、缓存。用 functools.wraps 可保留原函数名称。
from functools import wraps
def timer(func):
@wraps(func)
def wrapper(*a,**kw):
import time
start=time.time()
r=func(*a,**kw)
print(f"跑了{time.time()-start:.3f}秒")
return r
return wrapper装饰器就是函数界的出门穿搭——人还是那个人,但加上装饰之后,牛逼多了。