溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python閉包是什么

發(fā)布時間:2020-09-24 14:20:02 來源:億速云 閱讀:166 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關python閉包是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

“閉包”這個詞語相信大多數學過編程的同學并不陌生,但是有時候理解起來還是有一定難度。

先看定義:閉包是由函數和與其相關的引用環(huán)境組合而成的實體。比如參考資源中就有這樣的的定義:在實現深約束時,需要創(chuàng)建一個能顯式表示引用環(huán)境的東西,并將它與相關的子程序捆綁在一起,這樣捆綁起來的整體被稱為閉包。

python閉包(closure)其實并不是什么很復雜的東西。

通俗的講就是:如果在一個內部函數里,對在外部作用域(但不是在全局作用域)的變量進行引用,那么內部函數就被認為是閉包(closure)。它只不過是個“內層”的函數,由一個名字(變量)來指代,而這個名字(變量)對于“外層”包含它的函數而言,是本地變量。

看到這里或許你依然不明白什么是閉包,沒關系,看完下面的小例子你一定會明白!

#! /usr/bin/env python
# coding=utf-8
# http://www.pythontab.com
#定義一個函數
def plus(number):
#在函數內部再定義一個函數,其實這個里面的函數就被認為是閉包
   def plus_in(number_in):
#這里打印一下number_in變量,以便大家可以更清楚傳進來的變量時哪一個
       print str(number_in) + "\r\n"
       return number+number_in
#其實這里返回的就是閉包的結果
   return plus_in

#給plus函數賦值,這個20就是給參數number
v1=plus(20)
print v1(100) #注意這里的100其實給參數number_in

運行結果

100

120

注意:100是print str(number_in) + "\r\n"打印的結果哦,講到這里大家明白什么是閉包了吧~~

以上就是python閉包是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI