Python中的高階函式簡介

純潔的程式碼發表於2020-02-25
函數語言程式設計
  • 函數語言程式設計的特點

    • 把計算視為函式而不是指令
    • 純函數語言程式設計:不需要變數,沒有副作用,測試簡單
    • 支援高階函式,程式碼簡潔
  • Python支援的函數語言程式設計的特點

    • 不是純函數語言程式設計:允許有變數
    • 支援高階函式:函式可以作為變數傳入
    • 支援閉包:有了閉包就可以返回函式
    • 有限度的支援匿名函式

高階函式
  • 高階函式:能接收函式作引數的函式

    • 變數可以指向函式
    • 函式的引數可以接收變數
    • 一個函式可以接收另一個函式作為引數
    • 能接收函式作引數的函式就是高階函式
  • 示例

    • 實現求絕對值的和
    [Python]
    純文字檢視
    複製程式碼
    1
    2
    3
    4
    5
    In [4]: def func(x, y, f):
    ...: return f(x) + f(y)
    ...:
    In [5]: func(3, -4, abs)
    Out[5]: 7

    2.實現兩個數的開方和
    [Python]
    純文字檢視
    複製程式碼
    1
    2
    3
    4
    5
    6
    In [6]: import math
    In [7]: def add(x, y, f):...: return f(x) + f(y)
    ...:
    ...:
    In [8]: add(9, 25, math.sqrt)
    Out[8]: 8.0
  • map() 是Python內建的高階函式,接收一個函式 f 和一個 list,並通過把函式 f 一次作用於 list 的每一個元素上,返回一個新的 list 。
  • 示例
    # 輸出:['Adam', 'Lisa', 'Bart']def format_name(s): return s[0].upper() + s[1:].lower()print map(format_name, ['adam', 'LISA', 'barT'])
  • 更多技術資訊可關注:itheimaGZ獲取


相關文章