在Python中,装饰器(Decorator)是一种特殊的函数,它可以用来修改或增强其他函数或方法的行为。装饰器允许您在不修改原始函数代码的情况下,向函数添加新的功能或行为。它们通常用于添加日志记录、性能分析、验证或修改函数的返回值等方面。
装饰器的语法使用 @
符号紧跟着装饰器函数名,放在要装饰的函数定义之前。当调用被装饰的函数时,装饰器函数将被自动调用,并用其返回值来替换原始函数。
以下是一个简单的装饰器示例,用于在调用函数时打印日志:
def log_decorator(func):def wrapper(*args, **kwargs):print(f"Calling function '{func.__name__}'")return func(*args, **kwargs)return wrapper@log_decorator
def my_function(x, y):return x + yresult = my_function(3, 5)
print("Result:", result)
在上面的示例中,log_decorator
是一个装饰器函数,它接受一个函数作为参数并返回一个新的包装函数 wrapper
。wrapper
函数在调用被装饰的函数之前打印日志,并且通过 return func(*args, **kwargs)
调用原始函数。通过在 my_function
函数定义之前使用 @log_decorator
装饰器,我们将 my_function
函数传递给 log_decorator
函数,从而使其被装饰。