通用装饰器传参

通用装饰器是在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 函数作为装饰器工厂函数,接受参数 arg1arg2。然后,decorator_factory 返回一个装饰器函数 decorator,用于实际装饰被修饰函数 func。在 decorator 中,可以使用参数 arg1arg2,并执行被修饰函数。

通过创建装饰器工厂函数,我们可以在装饰器中传递参数,并且这些参数将在装饰器内部的逻辑中使用。这样,我们可以轻松地根据需要定制装饰器的行为。