zoukankan      html  css  js  c++  java
  • Python【day 11】闭包

    闭包
    1、闭包的概念:
    嵌套函数中,父级函数的变量,在子集函数中用到了(访问、修改、返回),那么这个变量就被保护起来了
    只有自己可以修改,父级函数()()就是闭包函数

    2、闭包的特点:
    1、常驻内存
    2、保护变量(只能自己修改,别人无法修改)

    3、闭包解决的问题:
    全局变量,别的同学也有可以修改,只需要在函数内存变量前加上global就可以修改全局变量
    全局变量: 优点是:常驻内存 缺点是:大家都可以修改-不安全
    局部变量: 优点是:只有自己可以访问和修改-安全 缺点:无法常驻内存,别的同学无法访问
    如何让一个变量既可以常驻内存,又只能自己才能修改呢,引入闭包函数

    4、闭包的写法:
    def outer():
    a = 10
    def inner():
    print(a)
    return a
    return inner
    ret = outer() #返回的是inner函数的内存地址
    ret() #就是闭包函数

    5、闭包的应用
    1、爬虫
    爬取网页的时候,通过网络访问网页后,将网页爬取的内容存到变量中,下次直接分析变量
    比每次都访问网络,要更高效

    2、写法
    from urllib.request import urlopen
    def outer():
    content = urlopen('https://www.baidu.com/').read()
    def inner():
    print(content)
    return content
    return inner
    ret = outer() #这里返回的是inner函数的内存地址
    print(ret()) #这里就是content(被保护起来的变量,常驻内存,只能自己修改)
    #ret()是闭包函数
  • 相关阅读:
    [转载]TFS测试管理
    [转载]TFS发送邮件提醒功能
    [转载]TFS与Project、Excel同步
    [转载]TFS源代码管理8大注意事项
    [转载]TFS源代码管理
    [转载]项目风险管理七种武器之结语
    [转载]项目风险管理七种武器-拳头
    刷新SqlServer所有视图元数据的存储过程
    MSSQL 触发器 暂停 和 启动
    给 Easyui Datagrid 扩展方法
  • 原文地址:https://www.cnblogs.com/wangtp/p/11625346.html
Copyright © 2011-2022 走看看