gpt4 book ai didi

python - 这个函数调用是如何工作的? (涉及到多对括号和装饰器)

转载 作者:行者123 更新时间:2023-11-28 23:01:50 24 4
gpt4 key购买 nike

在有关装饰器和“复合语句”的官方 Python 文档的这一页上,给出了这段代码示例:

[样本开始]

@f1(arg)
@f2
def func(): pass

相当于:

def func(): pass
func = f1(arg)(f2(func))

[示例结束]

但是,我不明白“func = f1(arg)(f2(func))”。我以前从未见过这样的电话,我也不知道这意味着什么。是使用不同参数的多次调用,每对括号包含一个参数(第一个为“arg”,第二个为“f2(func)”),还是其他?我需要了解这一点才能研究装饰器。另外,这在 Python 2.7 中有效吗?我就装饰器咨询的网站之一是关于 Python 3.2 的。

最佳答案

为此您需要知道的是函数是一流的对象 - 您可以像 ints 或 strs 一样传递函数。

f1 返回一个函数,因此您发布的内容类似于:

def func(): pass
f1_ret = f1(arg)
f2_ret = f2(func)
func = f1_ret(f2_ret)

关于python - 这个函数调用是如何工作的? (涉及到多对括号和装饰器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com