Python 程式札記 : 閉包(Closure)

2024/01/09閱讀時間約 1 分鐘

本文將介紹 Python 中的閉包(Closure),我們將從閉包的定義開始介紹,然後是閉包的用途,以及最後的實作範例。

什麼是閉包(Closure)?

在 Python 中,閉包是一個函式,它記住了其外部作用域中的變量,即使該作用域已經完成執行。閉包的特點是它允許函式訪問那些不在作用域中的非全局變量。

閉包的特性:

  1. 必須有一個內部函數。
  2. 內部函數必須參考外部作用域的變量。
  3. 外部函數必須返回內部函數。

閉包的用途

閉包可以用於封裝變量,提供類似物件導向編程中的封裝功能。它們通常用於回調函數和裝飾器

實作範例

以下提供一個範例來幫助理解閉包的概念。

def outer_function(msg):
message = msg

def inner_function():
print(message)

return inner_function

print_message = outer_function('Hello, World!')
print_message()

在這個範例中,outer_function 創建了一個叫做 message 的變量,然後定義了一個 inner_function。這個 inner_function 是一個閉包,因為它記住了 message 變量的值。

補充說明

這篇寫完後,我回頭看了一下裝飾器這篇,其實裝飾器就是使用閉包(Closure)吧,不知道我這樣理解有沒有錯。然後,Javascript裡面也有閉包(Closure),應該都是同樣的一件事情吧,都是同樣的Function包Function,有比較理解的朋友歡迎留言解惑。


😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

51會員
82內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!