python裝飾器閉包函數使用方法

來源:互聯網
上載者:User

為了要說說裝飾器不得不說一下python中的閉包函數。引用一下維基的介紹“在電腦科學中,閉包(Closure)是詞法閉包(Lexical Closure)的簡稱,是引用了自由變數的函數。這個被引用的自由變數將和這個函數一同存在,即使已經離開了創造它的環境也不例外。所以,有另一種說法認為閉包是由函數和與其相關的引用環境組合而成的實體。”

    看了下,我覺得有點繞口,那麼按照我的理解:在一個內建函式A裡的一個函數B,對在B外部範圍(但不是在全域範圍)的變數進行引用,那麼內建函式B就被認為是閉包(closure)。按照這個解釋舉個例子:


函數A裡面有函數B,在B中引用了x變數,這裡x引用的部署全域變數x=10,而是引用的A中的x=1,那麼這裡的B就是一個閉包函數。運行結果:

x=1,y=2

同時,這裡也可以看到函數B引用的是A中的變數x。
這裡只是一個簡單的介紹,有興趣的可以自己去研究下,下次說說閉包的應用---修飾器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.