閉包的條件
閉包,從字面意思上可能不太好理解是什么意思胰锌,但是從閉包的條件入手會(huì)相對(duì)比較好理解石抡。閉包需要滿足三個(gè)條件:
必須是嵌套函數(shù)
內(nèi)嵌函數(shù)需要調(diào)用外部函數(shù)的變量
外部函數(shù)的返回值是內(nèi)嵌函數(shù)
滿足以上三個(gè)條件的內(nèi)嵌函數(shù)和外部函數(shù)的變量一起稱為閉包。
例子
def outer(num): # 嵌套函數(shù)
def inter(): # 內(nèi)嵌函數(shù)
print(num) # 調(diào)用了外部函數(shù)的變量
return inter # 外部函數(shù)的返回值是內(nèi)嵌函數(shù)
上面這個(gè)就是閉包的簡(jiǎn)單例子脊奋。outer是個(gè)嵌套函數(shù),inter是outer的內(nèi)嵌函數(shù)疙描,inter調(diào)用了outer的變量num诚隙,outer的返回值是inter。
所以起胰,inter函數(shù)和outer函數(shù)的參數(shù)num一起被稱為閉包久又。