Skip to main content
 首页 » 编程设计

python之如何在没有所需参数的情况下调用函数

2025年05月04日19zfyouxi

我想创建一个函数列表来设置先前定义的函数的默认值,以便稍后我可以只用一个参数调用它们。问题是第一个参数是必需的,所以我得到了一个错误。最符合 Python 风格的方法是什么?

def plus(num, a1): 
    return num + a1 
 
def div(num, a1): 
    return num / a1; 
 
acts = [plus(a1 = 3), div(a1 = 3), div(a1 = 2)] 
 
num = 9 
for act in acts: 
    num = act(num) 

我希望的行为是 num 为 9 -> 12 -> 4 -> 2

请您参考如下方法:

使用 funtools.partial,您需要翻转参数,因为 partial 按顺序应用它们:

from functools import partial 
 
def plus(a1, num): 
    return num + a1 
 
f = partial(plus, 3) 

例如:

>>> f = partial(plus, 3) 
>>> f(10) 
13 

或者使用默认值:

def div(num, a1=1): 
    return num / a1 
 
fdiv = partial(div, a1=3) 

例如:

>>> acts = [partial(plus, 3), partial(div,a1 = 3), partial(div, a1 = 2)] 
>>> num = 9 
>>> for act in acts: 
...     num = act(num) 
... 
>>> num 
2.0