[英]Understanding Nested functions in python
我是stackflow的新手。 如果有人可以帮助我,我将不胜感激。
我必须解决这个问题:
定义一个嵌套的 function,称为nested_sum,其中在 function 的第一部分中,您接受一个名为 x 的参数,而在第二部分中(ZC1C425268E68385D1AB5074C17A9F 内部的另一个参数)。 在 function 里面你必须计算 x 和 y 的总和。
要测试您的 function 创建一个名为res_1
的变量,您将x
参数传递给nested_sum
,然后创建一个名为res_2
的变量,您将在其中传递res_1
变量的y
参数以获得最终解决方案。
res_2
的x
等于 2 , res_1
的 y 等于 10 。
在网上看了之后,我发现了一个类似的代码,但我真的不明白它是如何工作的!
def nested_sum(x):
def in_sum(y):
return x+y
return in_sum
res_1 = nested_sum(2)
res_2 = res_1(10)
谢谢
首先你需要意识到res_1
就是in_sum()
function。
因此,根据您的代码:
nested_sum(2)
将x = 2
然后返回in_sum()
function。 res_2 = res_1(10) = in_sum(10)
因此x = 2
和y = 10
,因此
x + y = 2 + 10 = 12
您可以编写如下代码(更容易理解):
def nested_sum(x):
def in_sum(y):
return x+y
return in_sum
res_1 = nested_sum(2) #nested_sum return in_sum(y) location with x=2 so --> res_1= in_sum (2+y)
res_2 = res_1(10) #Cause res_1 points in_sum(2+y) res2=in_sum(2+10)=12
首先,Python中的function是一个object。 把它想象成一张纸,上面写着 arguments 它需要做什么。
nested_sum(2)
创建一张新的纸,写在上面:«接受参数,加 2 并返回。»
nested_sum()
会在其中写下一张新纸:«接受参数,添加并返回它。»
让我重命名代码中的变量:
def increaser_function_maker(x):
def the_new_function(y):
return x + y
return the_new_function
function_that_takes_number_and_adds_two_to_it = increaser_function_maker(2)
result = function_that_takes_number_and_adds_two_to_it(10)
还有另一种方法可以制作这个 function。 也许会更容易理解:
def increaser_function_maker(value_to_add):
return lambda i: i + value_to_add
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.