python - 如何部分定义函数参数? Python

标签 python function arguments keyword-argument

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

>>> 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)

如何为鸭子函数部分定义函数参数?

最佳答案

使用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

关于python - 如何部分定义函数参数? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989189/

相关文章:

python - 如何添加两个 pandas 数据框并保留两个索引

python - SUDS 或 SOAPpy : google app engine python

javascript - 如何在 smarty tpl 中使用 javascript 函数

宏中的逗号将参数传递给另一个宏函数 (#define a,b)

javascript - jquery,点击放大图片,然后点击agian让它回到之前的宽度

javascript - 简写 if 语句始终返回 'false' 而不是分配的值

python - Python 中的可重入子进程?

python - 启用覆盖时如何在 PyCharm 中调试 py.test

java - 列表或字符串数​​组作为方法参数

java - 按值/引用传递,什么?