闭包

闭包是内部函数对外部函数的作用域的变量的引用

闭包内的闭包函数私有化了变量,其实完成了数据的封装,类似于面向对象
装饰器用到了闭包

def func(): #外部函数
    a = 1 #外部额函数作用域的变量
    print('this is func')
    def func1(num): #内部函数
        print (num + a)
    return func1
#运行外部函数,内部函数被创建
var = func()
var(3)
my_list = [1, 2, 3, 4]

def func(obj):
    def func1():
        obj[0] += 1
        print(obj)
    return func1

var = func(my_list)
var()
var()
var()
[2, 2, 3, 4]
[3, 2, 3, 4]
[4, 2, 3, 4]
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 与闭包有关的概念:变量的作用域和变量的生存周期。下面本篇文章就来给大家介绍一下JS中变量的作用域及闭包,有一定的参...
    浅浅而谈阅读 1,625评论 0 0
  • 与闭包有关的概念:变量的作用域和变量的生存周期。下面本篇文章就来给大家介绍一下JS中变量的作用域及闭包,有一定的参...
    浅浅而谈阅读 1,534评论 0 0
  • 闭包是函数和声明该函数的词法环境的组合 ​ 一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),...
    郭豪豪阅读 2,750评论 0 0
  • 本文目录: 1.词法作用域 2.变量的生命周期 3.闭包案例分析 4.实用的闭包 5.用闭包模拟私有方法 6.在循...
    前端辉羽阅读 3,114评论 0 12
  • 概念 闭包是捆绑在一起(封闭)的函数与对其周围状态(词法环境)的引用的组合。通俗的讲,闭包使您可以从内部函数访问外...
    470d98b91bd3阅读 2,425评论 0 1