iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0

Python 中的閉包就像「記憶體配備」函數。它們允許函數記住創建它的環境中的值,即使該環境不再存在。閉包用於函數式程式設計、事件處理和回呼函數,在這些函數中,您需要在不使用全域變數的情況下保留某些狀態。

閉包是一個保留對其詞法範圍的存取的函數,即使該函數在該範圍之外執行也是如此。當封閉函數傳回內部函數時,您會得到一個具有擴展範圍的函數物件。

換句話說,閉包是捕獲在其封閉作用域中定義的對象的函數,允許您在其主體中使用它們。此功能可讓您在需要在連續呼叫之間保留狀態資訊時使用閉包。

閉包在專注於函數式程式設計的程式語言中很常見,Python 支援閉包作為其各種功能的一部分。

在 Python 中,閉包是您在另一個函數中定義並從另一個函數傳回的函數。這個內部函數可以保留在內部函數定義之前的非本地作用域中定義的物件。

def outer_function(x):
    # Outer function: takes 'x' and defines inner_function
    def inner_function(y):
        return x + y  # 'x' is remembered from outer_function
    return inner_function  # Returns inner function (closure)

# Create a closure with x = 10
closure = outer_function(10)

# Call the closure with different values of 'y'
print(closure(5)) 
print(closure(20))

上一篇
python 與裝飾器
系列文
c 語言與 python 的30天之旅23
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言