欢迎来到Cecilia陈的博客

孤独,是人一生最好的修行。

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()
posted @ 2019-08-13 20:11  Cecilia陈  阅读(101)  评论(0编辑  收藏  举报