zoukankan      html  css  js  c++  java
  • 051 闭包函数

    一、什么是闭包函数

    闭包函数: 传参的另外一种方式, 参数+函数 包在一起返回出去

    提示:之前我们都是通过函数传参数的方式将外部的参数传给函数。
    而闭包则提供了另外一种思路,通过内部嵌套函数将函数参数和函数功能包起来,通过函数对象做返回值的方式返回出来。

    二、闭包函数的应用

    闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

    应用领域:延迟计算(原来我们是传参,现在我们是包起来)、爬虫领域。

    # 闭包函数演示1:
    import requests
    def geturlText(url):
    
        def get_res():  # 嵌套函数
            res = requests.get(url)
            print(res.text)
    
        return get_res  # 返回函数对象
    
    buidu_res = geturlText("https://www.baidu.com") # 获得处理百度url结果的函数对象
    # buidu_res() # 调用闭包函数
    print('buidu_res.__closure__[0].cell_contents:', buidu_res.__closure__[0].cell_contents)    # 这个方法可以看到闭包函数内包起来的元素
    

    buidu_res._closure_[0].cell_contents: https://www.baidu.com

    上述代码中的 buidu_res.__closure__[0].cell_contents 方法可以打印看到闭包函数内部的包起来的元素

    # 闭包函数演示2:
    def f1(x):
        def f1():
            print(x)
        return f1   # 返回嵌套函数的对象
    
    f2 = f1(2)
    # f2()    # 调用闭包函数
    print('f2.__closure__[0].cell_contents:', f2.__closure__[0].cell_contents)    # 这个方法可以看到闭包函数内包起来的元素
    

    f2.__closure__[0].cell_contents: 2

    上述代码中的 f2.__closure__[0].cell_contents 方法可以打印看到闭包函数内部的包起来的元素

  • 相关阅读:
    css3(持续更新...)
    em,rem,px之间的转换
    document.compatMode属性
    CSS hack(CSS浏览器兼容)
    JavaScript正则表达式
    Django数据库sqlite转mysql
    Markdown 使用指南
    centos7下docker 部署javaweb
    CMD命令大全
    {dockerUI}在服务器上直接安装shipyard/shipyard
  • 原文地址:https://www.cnblogs.com/XuChengNotes/p/11341348.html
Copyright © 2011-2022 走看看