您好,登錄后才能下訂單哦!
本篇內容主要講解“Python閉包函數的用法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python閉包函數的用法”吧!
簡而言之, 閉包的特點就是內部函數引用了外部函數中的變量。 在Python中,支持將函數當做對象使用,也就是可以將一個函數當做普通變量一樣用作另一個函數的參數和返回值。擁有此類特性的語言,一般都支持閉包。在一些語言中,在函數中可以(嵌套)定義另一個函數時,如果內部的函數引用了外部的函數的變量,則可能產生閉包。閉包可以用來在一個函數與一組“私有”變量之間創建關聯關系。在給定函數被多次調用的過程中,這些私有變量能夠保持其持久性。
閉包中被內部函數引用的變量,不會因為外部函數結束而被釋放掉,而是一直存在內存中,知道內部函數被調用結束。
閉包函數
閉:指的是定義在函數內部的函數
比如手機是閉包函數(內層函數),被手機包裝盒 (外層函數) 包裹起來,
手機可以使用包裝盒中的東西,內層函數可以引用外層函數的名字。
閉包函數是 函數嵌套、函數對象、名稱空間與作用域 結合體。
基本形式:
def outer(): name ='egon' def inner(): print('my name is %s' %name) return inner # print(outer()) f=outer() f()
閉包的小應用:
#爬蟲:模擬訪問百度 import requests def get(url): response = requests.get(url) if response.status_code == 200: print(response.text) get('https://www.baidu.com/') get('https://www.baidu.com/') get('https://www.baidu.com/') #問題:每次訪問百度,都要調用一次,填一次地址 # 解決辦法:用閉包函數 def outter(): url = 'https://www.baidu.com/' #問題:把地址定死了, def get(): response = requests.get(url) if response.status_code == 200: print(response.text) return get baidu = outter() #baidu --->get baidu() # 改進: def outter(url): def get(): response = requests.get(url) if response.status_code == 200: print(response.text) return get baidu = outter('https://www.baidu.com/') #baidu --->get taobao = outter('https://www.taobao.com/') #taobao --->get baidu() #專門調百度 taobao() #專門調淘寶
到此,相信大家對“Python閉包函數的用法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。