python全栈闯关--10-3、闭包

1、定义

嵌套函数,内部函数调用外部函数的变量,叫做闭包

# 嵌套函数,内部函数调用外部函数的变量
def outer():
    a = 1
    def inner():
        print(a)
    inner()
outer()

 

2、闭包的应用

# 把内部函数返回,在外部调用避免重复的释放和创建变量a
def outer():
    a = 1
    def inner():
        print(a)
    return inner
f = outer()
f()

执行过程中,a=1在外部变量创建一次后,由于内部引用的存在,一直未消失。

避免了a在运行过程中,重复创建、重复释放

 

3、闭包简单应用

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()

多次引用时,可以避免重复创建、释放url

 

posted @ 2019-10-11 11:01  熊熊闯深林  阅读(132)  评论(0编辑  收藏  举报