在Python中,閉包是一種經(jīng)常出現(xiàn)在面試中的概念。它是函數(shù)和其引用環(huán)境的組合,其中引用環(huán)境是局部變量和自由變量的集合。如果一個內(nèi)部函數(shù)引用了定義在外部函數(shù)作用域內(nèi)的變量,那么這個內(nèi)部函數(shù)就是一個閉包。
下面是一個簡單的例子,展示了Python中的閉包:
def outer_func(x): def inner_func(y): return x + y return inner_func closure = outer_func(10) print(closure(5)) # 輸出 15
在這個例子中,outer_func是一個接受一個參數(shù)x的函數(shù)。該函數(shù)返回一個內(nèi)部函數(shù)inner_func,它接受一個參數(shù)y,并返回x+y的值。當(dāng)outer_func調(diào)用完成后,它返回了inner_func的引用。然后我們將返回值賦值給一個變量closure,它就成為了一個閉包。
通過調(diào)用closure,我們可以傳遞一個參數(shù)y,以獲取x和y的和。在這個例子中,我們將10傳遞給outer_func,然后我們調(diào)用closure并傳遞了5作為參數(shù)y。由于inner_func是一個閉包,因此它可以訪問外部函數(shù)的局部變量x,并將x和y相加,返回它們的和15。
閉包在Python中非常有用,因為它們允許我們將狀態(tài)保留在內(nèi)部函數(shù)中。這使得代碼更加模塊化和可復(fù)用。
上一篇mysql幾張表合并