通用装饰器是在Python中用于修改或扩展函数行为的一种技术。要在通用装饰器中传递参数,可以使用装饰器工厂函数来实现。
下面是一个示例,展示如何在通用装饰器中传递参数:
def decorator_factory(arg1, arg2):
# 定义装饰器工厂函数,接受参数 arg1 和 arg2
def decorator(func):
# 定义装饰器函数,接受被装饰函数 func
def wrapper(*args, **kwargs):
# 定义具体的装饰逻辑
# 在装饰逻辑中可以使用参数 arg1 和 arg2
print("装饰器接收到参数:", arg1, arg2)
# 执行被装饰函数
result = func(*args, **kwargs)
return result
return wrapper
return decorator
# 使用装饰器工厂函数创建一个装饰器,并传入参数
@decorator_factory("参数1", "参数2")
def my_function():
print("执行函数")
# 调用被装饰的函数
my_function()
在上述示例中,使用 decorator_factory
函数作为装饰器工厂函数,接受参数 arg1
和 arg2
。然后,decorator_factory
返回一个装饰器函数 decorator
,用于实际装饰被修饰函数 func
。在 decorator
中,可以使用参数 arg1
和 arg2
,并执行被修饰函数。
通过创建装饰器工厂函数,我们可以在装饰器中传递参数,并且这些参数将在装饰器内部的逻辑中使用。这样,我们可以轻松地根据需要定制装饰器的行为。