【发布时间】:2012-07-17 07:49:16
【问题描述】:
我有一个关于如何在 Python 中定义和调用带有可选参数和 *args 参数的方法的问题。例如,
def test_func(arg1, optional_arg=None, *args):
...
并且我希望能够使用以下任一语句调用该方法:
test_func("foo", arg1, arg2, ..., optional_arg="bar")
...
test_func("foo", arg1, arg2, ...)
# arg1, arg2 ... belongs to *args;
# optional_arg is unset (defaults to None)
这有可能吗,还是在调用这样的方法时我总是必须将 optional_arg 设置为某个值? IE。我只希望在调用函数时专门编写 optional_arg=... 时设置 optional_arg 。
【问题讨论】:
-
这就是
**kwargs的用途。 -
除了下面的答案,请注意在 Python 3 中您可以使用 keyword-only arguments。
标签: python python-2.7 optional-parameters iterable-unpacking