047 闭包函数

南楼画角 提交于 2019-11-27 05:49:14

闭包函数

  • 闭包指的是:函数内部函数对外部作用域而非全局作用域的引用。

  • 我们之前学习函数的参数的时候,我们给函数传参数是从函数的外部传参的

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()
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!