Python語言允許在定義函式的時候,其函式體內又包含另外一個函式的完整定義,這就是我們通常所說的巢狀定義。
例項1:
def OutFun(): #定義函式OutFun(), m=3 #定義變數m=3; def InFun(): #在OutFun內定義函式InFun() n=4 #定義區域性變數n=4 print m+n #m相當於函式InFun()的全域性變數 InFun() #OutFun()函式內呼叫函式InFun()
例項2:
def InFun(m): n=4 print m+n def OutFun() m=4 InFun(m)
例項2首先定義函式InFun(),然後再次定義OutFun()函式,此時InFun()和OutFun()完全獨立的兩個函式,再次OutFun()函式內呼叫InFun();其實例項1和例項2中的巢狀作用是一樣的,只是兩種不同的表現形式。