Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中的返回函数_Python 3.x - Fatal编程技术网

Python 3.x Python中的返回函数

Python 3.x Python中的返回函数,python-3.x,Python 3.x,我很难理解Python中高阶函数的返回函数是如何工作的。谁能解释一下下面的代码是如何打印25的答案的 def create_adder(x): def adder(y): return x + y return adder add_15 = create_adder(15) print(add_15(10)) 创建名为的加法器。现在x=15 `add_15 = create_adder(15) ` 函数定义在这里,不在这里 def

我很难理解Python中高阶函数的返回函数是如何工作的。谁能解释一下下面的代码是如何打印25的答案的

def create_adder(x):  
    def adder(y):  
        return x + y   
    return adder  

add_15 = create_adder(15)  

print(add_15(10))

创建名为的加法器。现在x=15

`add_15 = create_adder(15)  `
函数定义在这里,不在这里

def adder(y): 
返回而不输入加法器函数

return adder  
现在将调用的_15(10)添加到加法器函数中。现在y=10


print(add_15(10))
函数也是一个对象!可以创建、返回、分配给变量等。 函数create_adder需要一个参数x,该参数将成为求和的第一个元素。然后它返回一个函数对象。 当使用create_加法器(15)调用create_加法器时,它使用数字15填充和的第一个元素,然后返回一个函数,该函数接收另一个数字并被分配给加法15。 当使用add_15(10)调用add_15时,它使用数字10填充它对求和中第二个元素的要求,然后返回结果

def create_adder(x):  
    def adder(y):  
        return x + y   
    return adder  
此函数正在创建并返回一个新函数。这就是高阶函数的全部内容。函数可以像处理任何其他数据一样处理

add_15 = create_adder(15)  
此行使用上面定义的函数定义一个始终添加15的函数。为了更好地理解这一点,您可以将上面定义的
加法器
嵌套函数视为一个模板。然后
add_15
变成:

def adder(y):  
    return 15 + y 
15
来自
x
传递给
create\u adder

print(add_15(10))
最后,当您执行此操作时,它返回
15+10
,即
25