首页 > 其他 > 详细

24.闭包现象

时间:2019-09-22 17:26:39      阅读:92      评论:0      收藏:0      [点我收藏+]

# 闭包现象
def outer():
n="曹娜是傻逼"
def inner():
print(n)
return inner
f=outer()
f()

1,函数嵌套
2,inner函数,没有n变量,根据作用域查找顺序,会找到outer的变量n,
3,outer函数返回值inner ,返回的是inner的内存地址。
4,一般来讲,outer()加括号调用,函数执行,返回inner内存地址,局部变量n瞬间释放。但是,在执行f()就相当于执行inner(),inner函数打印n,依然可以打印。
这种现象就是闭包。
意义 :返回的函数对象,不仅仅是一个函数,在该函数外还包裹了一层作用域,使得 函数无论在何处调用,优先使用自己外层的作用域

24.闭包现象

原文:https://www.cnblogs.com/xh716/p/11568000.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!