42、谈谈你对闭包的理解?
生活随笔
收集整理的這篇文章主要介紹了
42、谈谈你对闭包的理解?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
再說說閉包之前,先說一說什么是外函數(shù),什么是內(nèi)函數(shù)?
外函數(shù):函數(shù)A的內(nèi)部定義了函數(shù)B,那么函數(shù)A就叫做外函數(shù)
內(nèi)函數(shù):函數(shù)B就叫做內(nèi)函數(shù)
什么是閉包?
在一個外函數(shù)中定義了一個內(nèi)函數(shù),內(nèi)函數(shù)里運用了外函數(shù)的臨時變量,并且外函數(shù)的返回值是內(nèi)函數(shù)的引用。這樣就構(gòu)成了一個閉包。
一般情況下,在我們認(rèn)知當(dāng)中,如果一個函數(shù)結(jié)束,函數(shù)的內(nèi)部所有東西都會釋放掉,還給內(nèi)存,局部變量都會消失。但是閉包是一種特殊情況,如果外函數(shù)在結(jié)束的時候發(fā)現(xiàn)有自己的臨時變量將來會在內(nèi)部函數(shù)中用到,就把這個臨時變量綁定給了內(nèi)部函數(shù),然后自己再結(jié)束。
?
def outer(a):b = 10def inner():print(a+b)return innerif __name__ == '__main__':demo = outer(5)demo()demo2 = outer(7)demo2()?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zhuifeng-mayi/p/9218762.html
總結(jié)
以上是生活随笔為你收集整理的42、谈谈你对闭包的理解?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue组件级路由钩子函数介绍,及实际应用
- 下一篇: SpringBoot-04:Spring