在 Python 中,装饰器(Decorator)是一种高级函数,用于修改其他函数的功能。装饰器可以在不改变原函数代码的情况下,添加额外的功能。通常情况下,装饰器是一个闭包,它接收一个函数作为参数,并返回一个新的函数。
下面是一个简单的装饰器示例:
# 定义装饰器函数
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper
# 使用装饰器来修饰函数
@my_decorator
def say_hello():
print("Hello!")
# 调用被装饰后的函数
say_hello()
在这个示例中,`my_decorator` 是一个装饰器函数,它将传入的函数在前后分别打印一些信息。通过 `@my_decorator` 将 `say_hello` 函数进行装饰,最终调用 `say_hello` 实际上是调用了经过装饰后的函数,输出了额外的信息。
装饰器提供了一种优雅且简洁的方式来修改或扩展函数的行为,常用于日志记录、性能测试、权限验证等方面。