zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python基础语法-函数-函数装饰器-带参数的装饰器

Python基础 函数 参数 语法 装饰
2023-06-13 09:18:41 时间

带参数的装饰器

装饰器可以接受参数,这意味着我们可以在运行时指定一些配置选项。例如,下面是一个带有参数的装饰器,它可以接受一个消息并打印该消息:

def decorator_function(msg):
    def wrapper(func):
        def inner_wrapper():
            print('Before the function is called.')
            print(msg)
            func()
            print('After the function is called.')
        return inner_wrapper
    return wrapper

@decorator_function('Hello World!')
def say_hello():
    print('Hello World!')

say_hello()

在这个例子中,我们定义了一个名为“decorator_function”的装饰器函数,它接受一个消息作为参数并返回一个包装器函数。但是,这次我们定义了一个内部函数“inner_wrapper”,该函数将在被装饰的函数执行之前和之后执行一些操作。

然后,我们将带有参数的装饰器应用于我们的“say_hello”函数。我们将“Hello World!”作为参数传递给装饰器函数,并将结果分配给“say_hello”函数,这意味着我们将“say_hello”函数传递给“decorator_function”函数作为第二个参数,并将“Hello World!”传递给它作为第一个参数。

最后,我们调用“say_hello”函数,它将在执行前和执行后打印一条消息,包括我们传递给装饰器函数的消息。