Python
closure(閉包)
解釋:
什麼是 closure(閉包)?
closure 就是:
一個「函式」,裡面用到了「外面函式的變數」,而這個「外面函式已經結束了」,可是那個變數還被記得。
白話想像一下:
就像你去買早餐,老闆說:
「你點的蛋餅我還記得,雖然你已經離開點餐台,但我等一下會幫你做!」
這個「老闆記得你點的東西」的感覺,就是 closure 的概念
離開現場,但變數還留著用!
Python 範例
def outer():
msg = "Hello"
def inner():
print(msg) # 用到外面的變數 msg
return inner # 把函式當作結果傳出去
# 用法
f = outer() # outer() 執行完了,但 msg 還被記得
f() # 印出 Hello
為什麼這樣做?
因為 closure 讓你可以:
保存狀態(像記憶)
做成更聰明的函式(像小助手)
避免用太多全域變數

請先 登入 以發表留言。