簡単なタプル、辞書、関数を作成しましょう。
>>> tup = (7, 3)
>>> dic = {"kw1":7, "kw2":3}
>>> def pr(a, b):
... print a, b
以下は*
、引数としてタプルと辞書の前に何をするかを示しています。
>>> pr(tup)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pr() takes exactly 2 arguments (1 given)
>>> pr(*tup)
7 3
>>> pr(*dic)
kw1 kw2
**
では、引数の前に試してみましょう。
>>> pr(**tup)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pr() argument after ** must be a mapping, not tuple
わかりました、** 辞書が引数として使用されている場合にのみ機能するようです。それでは、辞書を引いてみましょう。
>>> pr(**dic)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: pr() got an unexpected keyword argument 'kw1'
何?エラーを生成しないこの最後のケースの例を誰かに見せてもらえますか?