如何部分定义函数参数?蟒蛇

时间:2016-10-12 01:32:21

标签: python function arguments keyword-argument

如果我有一个带有一些参数的函数,我可以像这样定义一个duck函数:

>>> def f(x, y=0, z=42): return x + y * z 
... 
>>> f(1,2,3)
7
>>> g = f
>>> f(1,2)
85
>>> g(1,2)
85

我试图部分覆盖这些论点,但这并没有奏效:

>>> g = f(z=23)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() takes at least 1 argument (1 given)

如何为duck函数部分定义函数参数?

1 个答案:

答案 0 :(得分:2)

使用functools.partial

>>> from functools import partial
>>> def f(x, y=0, z=42): return x + y * z
... 
>>> g = partial(f, z=23)
>>> g(1,2)
47
>>> f(1,2,23)
47
相关问题