Python常见函数之函数固定形参

Python常见函数之固定形参

如果有这样一个函数 add(a, b), 此时你进行调用的时候肯定知道需要传递两个形参 比如 add(1,2), 但是如果我只想实现1的加法怎么办,有人说可以啊 每次都传递add(1,x) 就行但是这样可能还是会让别人误解!

那么, 如果我这样只需要传递add(2)或add(5) 就可以实现刚刚的算法,那么这样就算是将我们其中一个参数固定了,那么一起来看看怎么实现吧!

functools.partial

partial用于部分应用一个函数,它基于一个函数创建一个可调用对象,把原函数的某些参数固定,调用时只需要传递未固定的参数即可。

代码解释

1
2
3
4
5
6
7
8
9
import functools


def add(a, b):
print(a + b)


add = functools.partial(add, 1)
add(2) # 输出:3

add函数原本接收两个参数a和b,经过partial包装之后,a参数的值被固定为了1,新的add对象(注意此处add已经是一个可调用对象,而非函数,下文分析源码会看到)只需要接收一个参数即可。

通俗点说:就是把原函数的部分参数固定了初始值,新的调用只需要传递其它参数。


Python常见函数之函数固定形参
https://dreamshao.github.io/2024/06/27/python函数固定形参/
作者
Yun Shao
发布于
2024年6月27日
许可协议