闭包是一个函数(闭包是什么)

你是不是野路子,基础到底扎实不扎实,这个问题,只要面试官一问,答案自然就知道了。

你试试问问自己,闭包你知道吗?

面试必备的一个小知识点——闭包

闭包是个什么东西?

关于闭包,即一个函数定义和函数表达式位于另一个函数的函数体内(嵌套函数),而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数等,当其中一个这样的内部函数,在包含它们的外部函数之外被调用时,就会形成闭包。

也就是说内部函数会在外部函数返回后被执行。而当这个内部函数执行时,它仍然必须访问其外部函数的局部变量参数,以及其他内部函数。

这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响。

面试必备的一个小知识点——闭包

函数的作用域

大家可能都知道,当一个函数被执行的时候,函数就会在内存中开辟空间,来作为存放变量地址等的地方,等函数执行结束后,内存空间被释放掉。

而这里就有一个很奇怪的现象。当外部函数被调用时,并没有释放掉原有的内存空间,这是为什么呢?

案例解析

咱们举个例子看一下。

#!/usr/bin/env  python
def outer():
str_value= "I am variable of outer"
def inner():
print(str_value)
return inner
#调用外部函数并执行
f = outer()
print(f)

运行结果
"C:\Program Files\Python38\python3.exe" D:/python/python_210710/exercise/闭包.py

(0)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。

相关推荐