2015-05-22 63 views
-5

當我在Python中遇到閉包時,從下面的代碼中,我不明白在調用函數時爲x和y分配的參數的值如何。在第1點中,我們將參數值5傳遞給x。然後將其分配給函數中的x。在第二點,我們將7傳遞給inc5,我懷疑在這裏出現了,值7應該分配給x,但是它是如何分配給y的。Python中的閉包 - 變量賦值

def makeInc(x): 
    def inc(y): 
     return y + x 
    return inc 

inc5 = makeInc(5) #Point 1 
inc5(7) #Point 2 
+0

inc5是什麼? – therealprashant

+0

inc5是一個變量,顯然(在當然點1) – konart

+0

@VIJEE http://stackoverflow.com/questions/4020419/ – konart

回答

2

我不明白你爲什麼認爲7應該分配給x。外部函數makeInc返回內部函數inc,它是您分配給inc5的那個函數。所以談判委員會第五屆會議接受的說法y,這就是被綁定到值7

1

Point 1你傳遞一個varialbe inc5一個makeInc函數的返回結果,這將是另一個功能inc與局部變量x設置爲5.然後你呼叫這個新功能,並通過一個7作爲它唯一的參數y