Python 大家都该知道的高阶函数
Python 大家都該知道的高階函數(shù)
函數(shù)式編程現(xiàn)在逐漸被廣大開發(fā)群體接受,越來越多的開發(fā)者們開始使用這種優(yōu)雅的開發(fā)模式,而我們使用函數(shù)式編程最主要的是需要清楚 :
- 什么是高階函數(shù)(Higher-order Functions) ?
- Python 中高階函數(shù)有哪些 ?要怎么用 ?
高階函數(shù)概念
在函數(shù)式編程中,我們可以將函數(shù)當(dāng)作變量一樣自由使用。一個函數(shù)接收另一個函數(shù)作為參數(shù),這種函數(shù)稱之為高階函數(shù)。
舉個例子:
def high_func(f, arr): return [f(x) for x in arr]上面的例子中, high_func 就是一個高階函數(shù)。其中第一個參數(shù) f 是一個函數(shù) ,第二個參數(shù) arr 是一個數(shù)組,返回的值是數(shù)組中的所有的值在經(jīng)過 f 函數(shù)計算后得到的一個列表 。例如 :
from math import factorialdef high_func(f, arr): return [f(x) for x in arr]def square(n): return n ** 2# 使用python自帶數(shù)學(xué)函數(shù)print(high_func(factorial, list(range(10))))# print out: [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]# 使用自定義函數(shù)print(high_func(square, list(range(10))))# print out: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]Python 常用高階函數(shù)
如同 java、scala 等語言,我們很多常用的高階函數(shù)基本都一致