当前位置:首页python > 正文

Python 高级:装饰器(Decorator)本质

作者:野牛程序员:2025-12-22 11:30:40python阅读 2049
Python 高级:装饰器(Decorator)本质
# /*
# Python 高级:装饰器(Decorator)本质
# --------------------------------------------------------
# 概念:
# 装饰器本质上是“高阶函数”,接收一个函数作为参数,
# 对其进行包装或增强,返回一个新的函数。
#
# 特性:
# 1) 函数也是对象,可以作为参数传递;
# 2) 装饰器不修改原函数代码即可增加功能;
# 3) 常用于日志、权限、缓存、性能统计等场景。
# */

# ========================================
# 基本示例:普通装饰器
def decorator(func):
    def wrapper(*args, **kwargs):
        print("执行前操作")
        result = func(*args, **kwargs)
        print("执行后操作")
        return result
    return wrapper

@decorator
def greet(name):
    print(f"Hello, {name}!")

greet("Alice")

print("-" * 40)

# ========================================
# 装饰器的原理演示
def plain_func():
    print("这是原始函数")

# 手动使用装饰器,不用 @
decorated_func = decorator(plain_func)
decorated_func()

# --------------------------------------------------------
# 要点总结:
# 1) 装饰器是高阶函数:输入一个函数,输出一个函数;
# 2) wrapper 内部可执行原函数并增加额外功能;
# 3) @语法糖只是将函数传入装饰器并赋值回原名;
# 4) 装饰器不修改原函数源代码,实现横切逻辑扩展。
# */

#
# 执行前操作
# Hello, Alice!
# 执行后操作
# ----------------------------------------
# 执行前操作
# 这是原始函数
# 执行后操作


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • Python 高级:装饰器(Decorator)本质
  • 相关推荐

    最新推荐

    热门点击