1、柯里化定义:
指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。
z = f(x, y) 转换成 z = f(x)(y) 的形式
2、实例:
已知函数 add(x, y),该函数功能为:返回 x + y 值,求柯里化后,使其可以如下 add(4)(5) 的形式:
def add(x, y): return x + y print(add(4, 5)) # 柯里化 def add1(x): # 步骤1:先定义一个函数(一参) def func(y): # 步骤3:定义返回函数(一参) return x + y return func # 步骤2:返回函数 fn = add1(4) # 返回函数 print(fn(5)) # 9 print(add1(4)(5)) # 9
建议:逆推!使用函数递归完成柯里化:原来函数调用为 add(4, 5),柯里化目标是 add(4)(5),两个括号两次函数调用,第一次函数调用返回仍然是函数。
add 函数再拓展:
已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4)(5, 6) 的形式:
def add(x): def func(y, z): return x + y + z return func print(add(4)(5, 6)) # 15
已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4)(5)(6) 的形式:
def add(x): def func(y): def func1(z): return x + y + z return func1 return func print(add(4)(5)(6)) # 15
已知函数 add(x, y, z) 求柯里化后,使其可以如下 add(4, 5)(6) 的形式:
def add(x, y): def func(z): return x + y + z return func print(add(4, 5)(6)) # 15