繁体   English   中英

在 Python 中返回 Function

[英]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_adderx

print(add_15(10))

最后当你这样做时,它返回15 + 1025

调用了 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM