python全棧闖關--10-三、閉包

一、定義閉包

嵌套函數,內部函數調用外部函數的變量,叫作閉包函數

# 嵌套函數,內部函數調用外部函數的變量
def outer():
    a = 1
    def inner():
        print(a)
    inner()
outer()

 

二、閉包的應用url

# 把內部函數返回,在外部調用避免重複的釋放和建立變量a
def outer():
    a = 1
    def inner():
        print(a)
    return inner
f = outer()
f()

執行過程當中,a=1在外部變量建立一次後,因爲內部引用的存在,一直未消失。spa

避免了a在運行過程當中,重複建立、重複釋放code

 

三、閉包簡單應用blog

from urllib.request import urlopen
def get_url():
    url = 'https://www.baidu.com/'
    def get():
        ret = urlopen(url).read()
        print(ret)
    return get

get_func = get_url()
get_func()

屢次引用時,能夠避免重複建立、釋放urlget

相關文章
相關標籤/搜索