zoukankan      html  css  js  c++  java
  • 初识闭包

    首先,闭包是一个嵌套函数,内部函数对外部函数变量进行调用,外部函数的返回值是内部函数名

    内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数

    def func():
        a = 1
        def inner():
            print(a)
      return inner
    ret = func()
    ret()#1

    闭包可以实现先将一个参数传递给一个函数,而并不立即执行,以达到延迟求值的目的。

    每一次调用函数,函数里面的变量都会频繁的创建消失,都需要花费时间

    from urllib.request import urlopen
    def func(url):
        ret = urlopen(url)
        print(ret.read())
    
    func("https://i.cnblogs.com/EditPosts.aspx?opt=1")
    
    每次调用这个函数的话,就会运行一次,所以闭包的好处就体现出来了
    可以先传递参数给函数,但并不立即执行,而且节省内存
    
    def func():
        url = "https://i.cnblogs.com/EditPosts.aspx?opt=1"
    
        def inner():
            return urlopen(url).read()
        return inner
    
    ret = func()
    s = ret.read()
    print(s)
  • 相关阅读:
    2021
    关于react,vue框架的搭建及bug处理
    centOS7使用
    git初探
    项目分享技术大会总结
    angular中的异常机制与异常之外的处理
    angluarjs中指令的使用方式
    Servlet知识总结
    有时候真的需要一点点改变
    story
  • 原文地址:https://www.cnblogs.com/zhange000/p/9178823.html
Copyright © 2011-2022 走看看