Python 程式札記 : 閉包(Closure)

閱讀時間約 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,有比較理解的朋友歡迎留言解惑。


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

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

60會員
91內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!
梧笙の領域展開 的其他內容
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
開發者常常需要在同一台機器上管理多個 Python 專案,這就需要使用虛擬環境來隔離不同專案的依賴關係。本文將介紹 Python 虛擬環境的創建和使用,並通過程式碼範例來讓你更好理解。
在 Python 中,正則表達式和 JSON 處理,能幫我們有效率的處理文本數據,本文將介紹如何使用正則表達式進行文本分析,以及如何處理和操作JSON數據。
Python 作為一門廣泛應用的程式語言,提供了多種處理日期和時間的方法和函式庫。本文將介紹 Python 中日期和時間的處理方式,涵蓋基本概念、常用函數,並通過實例來說明其應用。
Python 產生器(Generator)是一種特殊的迭代器,能夠以更有效率的方式處理大量數據。本文將介紹產生器的基礎概念、使用方法,並提供實際應用範例
Python 裝飾器(Decorator),它能夠讓你在不改變原始函式的情況下,增加額外的功能。本文將介紹 Python 裝飾器(Decorator)的基本概念、實現方式,並提供實際應用範例讓你更好了解Python 裝飾器。
本文將介紹如何使用 Python 實現 LINE Notify 功能。LINE Notify 允許用戶通過 Line 應用程序接收自定義通知,非常適合於個人項目或業務流程中。LINE Notify 是 LINE 提供的一項功能,允許用戶從他們的應用程序、服務或系統中,透過LINE 發送通知。
開發者常常需要在同一台機器上管理多個 Python 專案,這就需要使用虛擬環境來隔離不同專案的依賴關係。本文將介紹 Python 虛擬環境的創建和使用,並通過程式碼範例來讓你更好理解。
在 Python 中,正則表達式和 JSON 處理,能幫我們有效率的處理文本數據,本文將介紹如何使用正則表達式進行文本分析,以及如何處理和操作JSON數據。
Python 作為一門廣泛應用的程式語言,提供了多種處理日期和時間的方法和函式庫。本文將介紹 Python 中日期和時間的處理方式,涵蓋基本概念、常用函數,並通過實例來說明其應用。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
理財對於許多人來說似乎是一個艱深的主題,但事實上,每個人都可以從零開始學習如何有效地管理自己的財務。無論你是一個年輕的上班族、學生,或是已經步入退休階段的人,理財的基本原則都能夠幫助你更好地掌握自己的金錢,實現財務目標。這篇文章將為理財小白提供一個簡單的指南,以幫助你開始建立堅實的理財基礎。 瞭解
Thumbnail
這篇會從註冊>介面>使用,一次性完整介紹Leonardo.Ai,會持續追蹤官方的更新進度進行修正。(最後更新時間:2023/08/30)
Thumbnail
我或許不能像太陽那般炙熱,但我成為你靜夜中耀眼的月光,照亮你的夢想 這是我為人錄音的內心話
打工遊學的路程總是充滿了憧憬和挑戰,而其中最令人掙扎的往往是金錢問題。本文將揭示那些從零開始的加拿大打工遊學費用。
前言:本文為綜合了《日經亞洲》雜誌四篇報導的重要資訊所寫成,在台積電的亞利桑那新廠剛舉行設備裝設完成慶祝典禮,美國總統和美國晶片業兩大巨頭超微和輝達的台裔CEO都親臨現場發表賀詞時,在這場重組全球晶片供應鏈的無硝煙戰爭中處於落後的前冠軍日本、從零開始的新玩家印度還有原本在過去十年急起直追卻接連被兩任
如果人生可以隨時重來,我當然會勇於各種冒險的投資方法,甚至當沖期權全來又有什麽關係呢? 可是... 如果你辛苦六年的積累,可以在三天內就因為FTX倒閉就消失,萬一原本明年你打算結婚該怎麽辦? 人生不是不能失敗,只是每一次失敗就等於失去一些機會成本,你在30歲不幸資產歸零,你覺得再花六年還有同樣
Thumbnail
先說 !這是一個系列的學習手札,所有內容都是我邊學邊做的,有任何錯誤歡迎指教,希望大家能一起進步 本章能學到了 SQL 是什麼,它們的分類,以及Keys 的觀念
Thumbnail
如果你想以一個「創作者」的身分開始你的YOUTUBE旅程,你必須知道「堅持」是一樣多麼不可丟失的東西,也因為這樣你必須要有足夠的熱情才能去支持自己面對現實的壓力。我相信絕對不限於創作者,各行各業多多少少都需要這樣的特性。
Thumbnail
在宴會端盤子的時候,Erik 見到了一位婚禮攝影師,深深的被他工作的身影給吸引,開始考慮走上影像的路。那時候高中還沒畢業的他,毅然放棄報考大學,他買了幾本攝影相關書籍自學,一次打三份工存錢買相機,邊學習邊打工去維持生活開銷。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
理財對於許多人來說似乎是一個艱深的主題,但事實上,每個人都可以從零開始學習如何有效地管理自己的財務。無論你是一個年輕的上班族、學生,或是已經步入退休階段的人,理財的基本原則都能夠幫助你更好地掌握自己的金錢,實現財務目標。這篇文章將為理財小白提供一個簡單的指南,以幫助你開始建立堅實的理財基礎。 瞭解
Thumbnail
這篇會從註冊>介面>使用,一次性完整介紹Leonardo.Ai,會持續追蹤官方的更新進度進行修正。(最後更新時間:2023/08/30)
Thumbnail
我或許不能像太陽那般炙熱,但我成為你靜夜中耀眼的月光,照亮你的夢想 這是我為人錄音的內心話
打工遊學的路程總是充滿了憧憬和挑戰,而其中最令人掙扎的往往是金錢問題。本文將揭示那些從零開始的加拿大打工遊學費用。
前言:本文為綜合了《日經亞洲》雜誌四篇報導的重要資訊所寫成,在台積電的亞利桑那新廠剛舉行設備裝設完成慶祝典禮,美國總統和美國晶片業兩大巨頭超微和輝達的台裔CEO都親臨現場發表賀詞時,在這場重組全球晶片供應鏈的無硝煙戰爭中處於落後的前冠軍日本、從零開始的新玩家印度還有原本在過去十年急起直追卻接連被兩任
如果人生可以隨時重來,我當然會勇於各種冒險的投資方法,甚至當沖期權全來又有什麽關係呢? 可是... 如果你辛苦六年的積累,可以在三天內就因為FTX倒閉就消失,萬一原本明年你打算結婚該怎麽辦? 人生不是不能失敗,只是每一次失敗就等於失去一些機會成本,你在30歲不幸資產歸零,你覺得再花六年還有同樣
Thumbnail
先說 !這是一個系列的學習手札,所有內容都是我邊學邊做的,有任何錯誤歡迎指教,希望大家能一起進步 本章能學到了 SQL 是什麼,它們的分類,以及Keys 的觀念
Thumbnail
如果你想以一個「創作者」的身分開始你的YOUTUBE旅程,你必須知道「堅持」是一樣多麼不可丟失的東西,也因為這樣你必須要有足夠的熱情才能去支持自己面對現實的壓力。我相信絕對不限於創作者,各行各業多多少少都需要這樣的特性。
Thumbnail
在宴會端盤子的時候,Erik 見到了一位婚禮攝影師,深深的被他工作的身影給吸引,開始考慮走上影像的路。那時候高中還沒畢業的他,毅然放棄報考大學,他買了幾本攝影相關書籍自學,一次打三份工存錢買相機,邊學習邊打工去維持生活開銷。