装饰器(Decorator) 是 Python一种强大的语法特性,允许在不修改原函数或类代码的前提下,动态地扩展其功能。和其名字一样,装饰器的核心思想就是"包装",即通过将函数或类作为参数传递给另一个函数(装饰器),返回一个增强后的新函数或类。
核心概念
-
函数是一等对象
Python 中函数可以像变量一样传递、赋值或作为返回值,这是装饰器的基础。 -
闭包(Closure)
内部函数可以访问外部函数的变量,即使外部函数已执行完毕。 -
语法糖
@
@decorator
等价于func = decorator(func)
,简化装饰器的应用。
示例
def my_decorator(func):
def wrapper():
print("函数执行前...")
func()
print("函数执行后...")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
输出: