閉包是指在一個函數內部定義的函數,并且內部函數可以訪問外部函數的局部變量。具體來說,閉包是由函數對象和其引用環境組合而成的實體。
閉包在Python中的使用場景如下:
示例代碼如下:
def outer_func(x):
def inner_func(y):
return x + y
return inner_func
closure = outer_func(10)
print(closure(5)) # 輸出15
示例代碼如下:
def counter():
count = 0
def increment():
nonlocal count
count += 1
return count
return increment
counter1 = counter()
print(counter1()) # 輸出1
print(counter1()) # 輸出2
counter2 = counter()
print(counter2()) # 輸出1
print(counter2()) # 輸出2
通過閉包,每個counter實例都有自己獨立的count變量,并且可以保持自己的狀態。