functools.partial(func[,*args][, **kwargs])
时间: 2024-11-09 21:24:17 浏览: 8
`functools.partial`是Python标准库functools模块中的一个函数,它的作用是用来创建一个部分应用的函数(Partially Applied Function)。简单来说,当你有一个已经定义好的函数,并希望固定部分参数值,而不每次都传递完整的参数列表,这时就可以使用`partial`。
它接受三个主要参数:
1. `func`: 需要部分应用的原函数。
2. `*args`: 可选,用于提供部分固定的参数,这些参数会作为新函数的一部分,每次调用都会预先设置好。
3. `**kwargs`: 也是可选,提供部分固定的关键字参数,同样会被预先设置到新函数中。
返回的新函数保留了原函数的部分参数,当这个新函数被调用时,仅需传入剩余未固定的部分参数。这在需要多次调用相似功能但参数又略有差异的情况下非常有用,可以提高代码的复用性和可读性。
举个例子:
```python
from functools import partial
def greet(name, greeting='Hello'):
return f'{greeting}, {name}!'
# 使用 partial 创建一个只带名字的打招呼函数
hello_john = partial(greet, 'John')
print(hello_john()) # 输出 "Hello, John!"
# 或者创建一个指定问候语的打招呼函数
say_hello = partial(greet, greeting='Hi')
print(say_hello('Alice')) # 输出 "Hi, Alice!"
```
阅读全文