具有多个嵌套函数的 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
。
我现在正在学习 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
。