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