1. 程式人生 > >python函式內嵌,巢狀函式

python函式內嵌,巢狀函式

python,函式巢狀,到底是個什麼東東?

很少有人用,但是,有時確實會用:

def multiplier(factor):
    def multiplyByFactor(number):
          return number*factor
    return multiplyByFactor

程式,一個函式在另外一個函式的裡面,外層的函式返回的是裡層函式。也就是函式本身被返回了,返回的是函式(聽起來和C語言的一些東東相似)。

注意,返回的函式還可以訪問它的定義所在的作用域,也就是它帶著它的環境資訊奧。

看看下面的用法,就會有被水澆的感覺了:

>>>double = multiplier(2)
>>>double(5)
10

>>>triple=multiplier(3)
>>>triple(3)
9

>>>multiplier(5)(4)
>>>20

每次呼叫外層函式,它內部的函式都會被重新繫結,factor變數每次都有一個新的值。

以上內容摘抄自《python基礎教程》