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