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