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

