2012-01-21 16 views
35

引数名とその値をメソッドとして辞書として渡すにはどうすればよいですか?辞書としてのPython引数

URLを作成するために、HTTP APIの一部としてGETリクエストのオプションおよび必須パラメータを指定します。私はこのpythonicするための最善の方法のか分からない。

+6

説明するコードをいくつか掲載してください。これはいくつかのことを意味するかもしれません。 –

+0

これは何か? http://stackoverflow.com/a/196997/590177 –

+0

[Python関数が受け取るキーワード引数をリストできますか?](http://stackoverflow.com/questions/196960/can-you-list-the -keyword-arguments-a-python-function-received) – Marcin

答えて

47

接頭辞として**という接頭辞を1つ使用します。 非キーワードとして引数の

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

そして、追加するだけで、名前のないargsをリストとして受け入れるために*が1つ使用されます:* args – jdi

+12

@Marcin:まあ、あまりにも簡単にコードを渡すかもしれませんが、これは私は個人的に常に言語を学ぶときに探すのが難しいと思うようなものです。 –

+0

可能なキーワード引数(およびデフォルト)を関数の定義で提供したい場合はどうすればよいですか? – Vanuan

30

、単一*を使用し、キーワードとして引数に、**を使用しています。例えば

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

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

非キーワードとして引数がタプルにアンパックされるとキーワードとして引数が辞書に展開されるであろう。 Unpacking Argument Lists

+0

結果は '(1、2)' '{'a':3、 'b':4}'になります。 – Makoto

+0

@Makotoありがとう。 –