闭包函数
闭包函数
1、什么是闭包函数?
闭:封闭 包:包装
比如手机是闭包函数(内层函数),被手机包装盒(外层函数)包装起来,手机可以使用包装盒中的东西,内层函数可以引用外层函数的名字
注意点:
1.闭包函数必须在函数内部定义
2.闭包函数可以引用外层函数的名字
闭包函数是 函数嵌套、函数对象、名称空间与作用域的结合体
(*****)闭包函数的作用:
1.闭包函数是为了装饰器做准备
2.减少代码冗余
例:写一个简单的闭包函数
# 通过闭包函数传参
def func(y):
x = 100
def inner(): # inner就是闭包函数
print(x)
print(y)
return inner
inner = func(200)
inner()
2、闭包函数的应用
(*****)为了装饰器做准备
例子一:普通函数直接传参数
import requests
url = "https://www.baidu.com/"
def spider_func(url):
response = requests.get(url)
if response.status_code == 200:
print(response.text)
print(len(response.text))
spider_func(url)
例子二:闭包函数接收url地址,执行爬取函数
import requests
def spider_outer(url):
def spider_inner():
response = requests.get(url)
if response.status_code == 200:
print(response.text)
print(len(response.text))
return spider_inner
spider_baidu = spider_outer("https://www.baidu.com/")
spider_baidu()