黎子卿 发表于 2023-8-15 16:18:03

新手

#funA 作为装饰器函数
def funA(fn):
    #...
    fn() # 执行传入的fn参数
    #...
    return '...'
@funA
def funB():
    #...

第四行的fn()是干什么的。
为什么要执行传入的fn参数。

isdkz 发表于 2023-8-15 16:18:37

第四行的 fn() 是用来执行传入的 fn 参数的。

在这个例子中, funA 被定义为一个装饰器函数,它接受一个函数作为参数,并对该函数进行一些额外的操作。在这种情况下, funB 函数被传递给 funA 作为参数。

通过调用 fn() ,我们实际上在 funA 中执行了传入的 fn 函数。这使得 funB 的代码在装饰器函数 funA 的操作之前和之后都会被执行。

执行传入的 fn 参数的原因是,装饰器函数通常用于在不修改原始函数代码的情况下添加一些额外的功能或行为。通过执行传入的函数,我们可以在装饰器函数中访问和操作原始函数的行为,并在必要时进行修改或扩展。这种方式允许我们在不改变原始函数的定义的情况下,动态地修改其行为。
页: [1]
查看完整版本: 新手