[英]Returning Function in Python
我很难理解在 Python 的高阶函数中返回 function 是如何工作的。 谁能解释一下下面的代码如何打印 25 的答案。
def create_adder(x):
def adder(y):
return x + y
return adder
add_15 = create_adder(15)
print(add_15(10))
def create_adder(x):
def adder(y):
return x + y
return adder
这个 function 正在创建并返回一个新的 function。这就是高阶函数的意义所在。 可以像对待任何其他数据一样对待函数。
add_15 = create_adder(15)
此行使用上面定义的 function 来定义始终加 15 的 function。为了更好地理解这一点,您可以将上面定义的adder
嵌套 function 视为模板。 然后add_15
变为:
def adder(y):
return 15 + y
15
来自传递给create_adder
的x
print(add_15(10))
最后当你这样做时,它返回15 + 10
即25
调用了 create_adder。 现在 x = 15。
`add_15 = create_adder(15) `
Function 在这里定义,不会进去。
def adder(y):
不输入加法器返回 function
return adder
现在调用 add_15(10) 并进入加法器 function。现在 y = 10。
print(add_15(10))
function 也是 object,它可以被创建、返回、赋值给变量。 等等。 function create_adder 需要一个参数 x,它将成为总和的第一个元素。 然后它返回一个 function object,当用 create_adder(15) 调用 create_adder 时,它使用数字 15 来填充总和的第一个元素。 然后返回一个 function,它接收另一个数字并分配给 add_15,当使用 add_15(10) 调用 add_15 时,它使用数字 10 来满足总和中第二个元素的要求。 然后返回它的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.