Python参数作为字典

52

如何将传递给方法的参数名及其值作为字典获取?

我想在HTTP API中指定GET请求的可选和必需参数,以便构建URL。我不确定最好的方法是什么,如何写出Pythonic的代码。


6
请提供一些代码以进行说明,这可能有几种含义(或者也许只有两种)。 - Rob Wouters
像这样的吗?https://dev59.com/XHVC5IYBdhLWcg3wvT7g#196997 - Devin M
我想要为GET请求指定可选和必需参数。你能详细说明一下吗?这句话意思不太清楚。 - S.Lott
2个回答

67

使用以**前缀的单个参数。

>>> def foo(**args):
...     print(args)
...
>>> foo(a=1, b=2)
{'a': 1, 'b': 2}

5
补充一点,单个 * 符号用于接受未命名的任意数量的非关键字参数作为列表:*args。 - jdi
13
@Marcin: 好吧,也许我太容易分享代码了,但这种结构是我个人在学习语言时总是难以搜索到的。请问需要翻译其他内容吗? - Fred Foo
2
如果我仍然希望在函数定义中提供可能的关键字参数(和默认值),该怎么办? - Vanuan

54

对于非关键字参数,使用一个单独的*,而对于关键字参数,使用**

例如:

def test(*args, **kwargs):
    print args
    print kwargs

>>test(1, 2, a=3, b=4)
(1, 2)
{'a': 3, 'b': 4}

非关键字参数将被拆分成元组,而关键字参数将被拆分成字典。

解包参数列表

1
结果将是:(1, 2) {'a': 3, 'b': 4} - Makoto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接