在python中,修饰符是如何生成函数的?

2024-09-27 04:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过以下链接学习了python中装饰器的概念:

http://www.python-course.eu/python3_decorators.php

我对其中的以下代码片段有一个基本的疑问:

def f(x):

    def g(y):
        return y + x + 3 
    return g

nf1 = f(1)

nf2 = f(3)

print(nf1(1))

print(nf2(1))

在本页中,最后两行的输出分别为“5”和“7”。 但正如我所看到的,我们只传递'x'的值,它从哪里得到'y'的值?它如何赋值给“Y”来计算输出?你知道吗


Tags: decoratorshttp概念return链接defwww装饰
1条回答
网友
1楼 · 发布于 2024-09-27 04:20:13

函数f创建并返回一个名为g的新函数。你知道吗

因此,这段代码通过传递x=1x=3来创建两个g函数:

nf1 = f(1)

nf2 = f(3)

然后用参数y=1调用g函数(存储在nf1nf2):

print(nf1(1))

print(nf2(1))

或许(或许不是)如果他们写下同样的话,会更容易理解:

print(f(1)(1))  # x=1, y=1
print(f(3)(1))  # x=3, y=1

相关问题 更多 >

    热门问题