Python 装饰器:穿上这件魔法外套,函数自己会加buff

Python基础 Jun 13, 2026

你有没有遇到过这种事?

写了一个函数,跑得好好的。突然需求来了:给每个函数加个日志。于是你开始在每个函数里粘贴复制。

写了两三个,你已经想砸电脑了。写了十几个……恭喜你,你已经成功从程序员转型为人肉复制粘贴机器。

这时候,Python 装饰器(Decorator)就像救星一样出现了。它就像一件魔法外套——给你的函数穿上它,函数就自动获得了额外能力,而你不用改函数内部的一行代码。

装饰器到底是个啥?

说人话:装饰器就是一个函数,它接收另一个函数作为参数,然后返回一个增强版的函数。

就像你去吃火锅——你点了一份毛肚(原始函数),服务员给你加了一份特制蒜料(装饰器),毛肚还是那个毛肚,但吃起来更香了。

写一个最简单的装饰器

def log_decorator(func):
    def wrapper(*args, **kwargs):
        print("准备调用:", func.__name__)
        result = func(*args, **kwargs)
        print("调用完成:", func.__name__)
        return result
    return wrapper

@log_decorator
def say_hello(name):
    print("你好,", name, "!")

say_hello("小明")

总结

装饰器就是 Python 给程序员的一件魔法斗篷。Flask 的路由、Django 的权限验证——全是装饰器在背后工作。

下次看到同事在疯狂复制粘贴日志代码的时候,走过去拍拍他的肩膀:“兄弟,了解一下装饰器?”

Tags