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()是闭包函数
  • 相关阅读:
    Linux磁盘文件的命名
    操作系统的基本介绍
    CMOS、BIOS
    CPU的频率、外频、倍频与超频
    学习Linux——计算机概论
    第三季-第14课-有名管道通讯编程
    第三季-第13课-无名管道通讯编程
    第三季-第12课-多进程程序设计
    第三季-第11课-进程控制理论
    第三季-第10课-时间编程
  • 原文地址:https://www.cnblogs.com/wangtp/p/11625346.html
Copyright © 2011-2022 走看看