偏函数
- 偏函数的应用场景
偏函数往往用在需要适当缩小函数适用功能范围的某些情况下,比如:
def vector_lenght(x, y, z):
return (x**2 + y**2 + z**2)**0.5
上面的函数vector_lenght
接收一个三维空间中向量的三个坐标x、y、z
,返回这个向量的长度。问题在于,很多时候可能要求的向量是一个二维向量的情况,比如xy平面上的向量,其取值就为(x, y, 0)
。这个时候如果要直接调用vector_lenght
函数就要每次都输入(x, y, 0)
,不是很方便。于是偏函数的概念就应运而生了。
- 偏函数的案例
仍然以上面讲到的vector_lenght
函数为例:
def vector_lenght(x, y, z):
return (x**2 + y**2 + z**2)**0.5
此时需要对二位向量(x, y, 0)
求长度,通过构建偏函数就可以解决问题,代码如下:
def vector_lenght_xy_01(x, y, z=0):
vector_lenght(x, y, z)
更高级的方法就是引用了functools库,代码如下:
vector_lenght_xy_01 = functools.partial(vector_lenght, z=0)