Python 函数式编程
一、Python 函数式编程 特点:
1.不是纯函数式编程:允许有变量
2.支持高阶函数:函数也可以作为变量传入
3.支持闭包:有了闭包就能返回函数。
4.有限度的支持匿名函数。
二、变量可以指向函数:
例:
f = abs print(f(-20))
三、匿名函数其实就是指向函数的变量
abs = len # print(abs(-10)) print(abs([1,2,3,4])
四、高阶函数:能接收函数做参数的函数
1.变量可以指向函数
2.函数的参数可以接收变量
3.一个函数可以接收另一个函数作为参数
4.能接收函数作参数的函数就是高阶函数
def add(x,y,f): return f(x) + f(y) print(add(-4,8,abs))
import math def add(x,y,f): return f(x) + f(y) result = add(25,9,math.sqrt)
def f(x): return x * x result = list(map(f,[1,2,3,4,5,6,7,8,9]))
传入两个参数的迭代:
from functools import reduce def fun(x,y): return x * 10 + y result = reduce(fun,[1,3,5,7,9]) 13579
用lambda表达式:
DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9} def char2num(s): return DIGITS[s] def str2int(s): return reduce(lambda x,y:x*10+y,map(char2num,s)) result = str2int('2468') print(result)