047 闭包函数
闭包函数
-
闭包指的是:函数内部函数对外部作用域而非全局作用域的引用。
-
我们之前学习函数的参数的时候,我们给函数传参数是从函数的外部传参的
def func(a):
print(a)
func(2)
- 现在闭包给我们提供了另外一种给传参数的思路
- 把函数以及变量一起包起来,也就是封装起来,下次需要用的时候可以直接拿来用
- 其实也就是函数里面嵌套着一个函数
- 闭包函数: 传参的另外一种方式, 参数与函数包在一起返回出去
- 闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,该函数无论在何处调用,优先使用自己外层包裹的作用域。
def func(a):
def add():
print(a)
return add
res = func(2)
res()
-
查看闭包的元素,就是查看闭包函数里面封装的有哪些东西
print(F"f.__closure__[0].cell_contents: {f.__closure__[0].cell_contents}")
-
爬取网页的闭包函数
import requests
def func(url)
def receive()
r = requests.get(url)
print(r.text)
return receive
baidu = func('https://www.baidu.com/') # baidu = func函数名
baidu() # baidu()= func()
taobao = func('https://www.taobao.com/')
taobao()