具有多个嵌套函数的 def 函数的输入语法是什么?

What is the syntax for the input for a def function with multiple nested functions?

我现在正在学习 Python,我只是想掌握所有语法选项。

目前,我唯一无法 google 的是,如果我出于某种原因想要定义一个包含多个其他定义的函数,该怎么办。

虽然我知道如果在较大的定义中只有 1 个定义该怎么办(val = f()(3,4) returns 7 如果你排除下面的第二个定义),我不'知道如何正确使用下面的功能。

如果可能的话,其中包含任意数量已定义函数的 def 函数的语法是什么?


代码:

def f():
    def x(a,b):
        return a + b
    return x
    def y(c,d):
        return c + d
    return y

 val = f()(3,4)(5,6)
 print(val)

我预计上面的 return 要么是 (7,11) 要么是 11。但是,它 returns 'int object is not callable'

当你写 val = f()(3,4)(5,6) 时,你希望 f 到 return 一个函数, 也是 return 一个函数;比较简单的多行调用:

t1 = f()
t2 = t1(3,4)
val = t2(5,6)

函数 f 定义并且 returns 必须定义并且 return 一个可以用 2 个参数调用的函数。所以,正如@jonrsharpe所说,你需要更多嵌套:

def f():
    def x(a, b):
        def y(c, d):
            return c + d
        return y
    return x

现在,f() 生成名为 x 的函数,f()(3,4) 生成名为 y 的函数(忽略过程中的参数 3 和 4),并且f()(3,4)(5,6) 计算(最终)为 5 + 6