詳解Python的函式巢狀

pythontab發表於2014-01-24

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中的巢狀作用是一樣的,只是兩種不同的表現形式。


相關文章