闭包函数
闭包函数
定义
封闭的包裹,内层函数被外层函数包裹起来,内层函数可以引用外层函数的名字
1、闭包函数必须在函数内部定义
2、闭包函数可以引用外层函数的名字
闭包函数是 函数的嵌套、函数对象、名称空间与作用域的结合体
----为了装饰器做准备的
def index(x): # 将x作为变量传入外层形参中,调用可传入任意x
# x=100 # 这样会写死,调用时无法修改
# func就是闭包函数
def func():
print(x)
return func
res = index(100) # 得的index执行后的返回值func
res() # 相当于调用func
应用
import requests
def res(url):
def inner():
respond = requests.get(url)
if respond.status_code == 200: # 状态码是200,返回正常
print(len(respond.text))
return inner
func = res("https://www.cnblogs.com/Mr-shen/") # 得到的是inner的内存地址
func()