Python 装饰器:不就是给函数穿了个马甲吗?

Python基础 Mar 9, 2025

你不是来学装饰器的,你是来看函数怎么穿衣服的

如果你在网上搜 Python 装饰器,大概率会看到一堆晦涩的定义。停——把那些忘掉。

真实场景:你写了一个函数 make_noodles(),它就是煮个泡面。但现在老板说,煮面前要烧水,煮完后要洗碗。你不想改 make_noodles() 本身。装饰器就是干这个的。它像个马甲:外面套一层,里面还是那个函数。

def add_vest(func):
    def wrapper():
        print("烧水!")
        func()
        print("洗碗!")
    return wrapper

@add_vest
def make_noodles():
    print("煮泡面中...")
make_noodles()

@add_vest 等价于 make_noodles = add_vest(make_noodles)。把函数扔进另一个函数包一下。

实际用途:日志记录、权限校验、计时器、缓存。

一句话:装饰器就是函数的「外套」。穿上它函数体面了不少,内核还是那个内核。人靠衣装马靠鞍嘛。

Tags