Python 装饰器:给函数穿上皇帝的新衣
一个神奇的语法糖
Python 装饰器大概是初学者遇到的第一个“看起来很厉害但完全看不懂”的东西。它就是一个把函数塞进另一个函数里加工一下再吐出来的工具。
from datetime import datetime
def log_calls(func):
def wrapper(*args, **kwargs):
print(f'[{datetime.now()}] 调用了 {func.__name__}')
return func(*args, **kwargs)
return wrapper
@log_calls
def say_hello(name):
print(f'你好啊,{name}!')
say_hello('小明')@log_calls 就像给函数贴了个标签,它自动就有了日志功能。用途:计时、缓存、权限校验、重试机制。小坑:用 @functools.wraps 保护函数的 __name__。