鱼C论坛

 找回密码
 立即注册
查看: 1763|回复: 1

[已解决]新手

[复制链接]
发表于 2023-8-15 16:18:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

第四行的fn()是干什么的。
为什么要执行传入的fn参数。
最佳答案
2023-8-15 16:18:37
第四行的 fn() 是用来执行传入的 fn 参数的。

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

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

执行传入的 fn 参数的原因是,装饰器函数通常用于在不修改原始函数代码的情况下添加一些额外的功能或行为。通过执行传入的函数,我们可以在装饰器函数中访问和操作原始函数的行为,并在必要时进行修改或扩展。这种方式允许我们在不改变原始函数的定义的情况下,动态地修改其行为。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-15 16:18:37 | 显示全部楼层    本楼为最佳答案   
第四行的 fn() 是用来执行传入的 fn 参数的。

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

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

执行传入的 fn 参数的原因是,装饰器函数通常用于在不修改原始函数代码的情况下添加一些额外的功能或行为。通过执行传入的函数,我们可以在装饰器函数中访问和操作原始函数的行为,并在必要时进行修改或扩展。这种方式允许我们在不改变原始函数的定义的情况下,动态地修改其行为。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表