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()是闭包函数
  • 相关阅读:
    2019 春第1次课程设计实验报告
    2019春第十二周作业
    2019春第十一周作业
    2019春第十周作业
    关于Vmvare虚拟机中Linux系统不能全屏的问题
    My algorithmic road
    段错误
    python人生如初见之初见yield
    网络爬虫requests-bs4-re-1
    The First Python man in Github
  • 原文地址:https://www.cnblogs.com/wangtp/p/11625346.html
Copyright © 2011-2022 走看看