装饰器(Decorator)是 Python 中一种用于修改函数或类行为的语法结构。它允许你在不修改原函数或类定义的情况下,通过添加额外的功能来扩展其功能或修改其行为。
装饰器通常由一个函数或类定义组成,它接受一个函数或类作为参数,并返回一个新的函数或类。新的函数或类会包装原始函数或类,并在执行前后插入额外的逻辑。
下面是一个简单的示例,演示如何定义和使用装饰器:
# 定义一个装饰器函数
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")
在上述示例中,我们定义了一个名为 decorator
的装饰器函数。它接受一个函数 func
作为参数,并定义了一个内部函数 wrapper
。wrapper
函数将在 func
执行前后添加额外的逻辑。最后,decorator
函数返回了 wrapper
函数作为装饰器的结果。
然后,我们使用装饰器语法 @decorator
来修饰 greet()
函数。这样,greet()
函数就被包装在 decorator
装饰器返回的 wrapper
函数中。
当我们调用被装饰后的函数 greet("Alice")
时,实际上是调用了 wrapper("Alice")
函数。在执行前后,额外的逻辑会被插入,并打印出相应的输出。
以上是一个简单的装饰器示例,希望能帮助你理解装饰器的基本概念和用法。你可以根据实际需求定义和使用不同的装饰器来扩展函数或类的功能。