1、闭包的简介
1、闭包的定义:嵌套的函数,且内部函数要调用外部函数的变量
举一个简单的例子:
def ssm():
a = 1
def ins():
print(a)
print(ins.__closure__)#输出非空,证明为闭包
ssm()
print(ssm.__closure__)#输出None,证明为非闭包
2、闭包最常用的形式:闭包最常用的形式就是return 函数内部的函数名,然后在外部用变量接收,其目的是节省创建内存的时间
2、闭包的简单应用
首先,先简单说明一下“urllib”模块,这个模块是关于获取网络请求的。下面先看一个该模块应用的实例:
这个实例中ret就是从指定网址“https://www.baidu.com”处获得的请求结果。
下面再看一个闭包的简单应用的实例:
说明: 内部函数使用了外部函数的变量url(所以是闭包),而且外部函数将内部函数的函数名作为返回值,在调用外部函数时,用get_func变量接收了外部函数get_url的返回值,所以get_func()就等价于get(),相当于调用内部函数get。