Python學習(三)

函數式編程

  • 特點:
    • 不是純函數的編程,允許有變量
    • 支持高階函數:函數可作爲變量傳入
    • 支持閉包:可以返回函數

高階函數

  • 內置函數:
    • map(function f, list l):將f作用在l的每個元素上,並返回一個新的list
    • reduce(function f, list l):對l中每個元素反覆使用f,最後返回一個結果
    • filter(function f, list l):f是對l中每個元素進行判斷,去掉不符合的元素,剩餘元素返回一個新的list
    • sorted(function f, list l):f中定義排序的規則,對l中元素進行按照f的規則排序

閉包:內層函數引用了外層函數的變量(參數也算變量),然後返回內層函數的情況,稱爲閉包(Closure)。

  • 特點:內層函數使用外層的局部變量,要保證局部變量不變

匿名函數

  • 關鍵字lambda 表示匿名函數,冒號前面的 x 表示函數參數。
  • 匿名函數限制,就是只能有一個表達式,不寫return,返回值就是該表達式的結果。

裝飾函數(高階函數):使用 decorator 用Python提供的 @ 語法,這樣可以避免手動編寫 f = decorate(f),使用decrator之後會改造函數的一些屬性,爲了防止函數的屬性修改,所以在用decrator時,利用@functools.wraps(f)將函數的屬性都複製過去,這句話放在最裏層的高階函數的上面。

偏函數

  • functools.partial可以把一個參數多的函數變成一個參數少的新函數,少的參數需要在創建時指定默認值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章