これは基本的な質問です。私は、後にはtuple
とdictionary
作成の奇妙な規則を持っていることを除いて、両方で同じことを行うことができ* args、** kwargsとtupleとdictでの呼び出しの違いは何ですか?
def foo(*args, **kwargs):
"""standard function that accepts variable length."""
# do something
foo(v1...vn, nv1=nv1...nvn=nvn)
def foo(arg, kwargs):
"""convention, call with tuple and dict."""
# do something
mytuple = (v1, ..vn)
mydict = {nv1=nv1, ...nvn=nvn}
foo(mytuple, mydict)
を行うことの違いがあります。しかし、基本的に違いはありますか? dict
とtuple
が私のためにそれをどうにかして扱うことができるので、無限のものを扱うのと同じ計算上の問題を解決できますか?
これは、Pythonの慣用的な部分のことですか?いいですか。構文糖あなたはとにかく何をしていますか?私はfunction
あなたのためにこれを処理するつもりです!
PS:これはWhy use packed *args/**kwargs instead of passing list/dict?のコピーであると私は同意しますが、重複した情報で修正する必要があります。そして、その質問はアップホーを受け取りました。だから私はそれを見つけることができないためにdownvotesされていますか?
スニペットで*の違いを見ることができます - 最初のバージョンでは任意の位置とキーワードの引数を渡すことができ、2番目のバージョンでは正確に2つの引数を渡す必要があります。 – jonrsharpe
しかし、私は両方とも私の元の問題を解決することができます不具合の長さの項目を扱う。タプルとDictsはすでに無限大ですか? – Nishant
http://stackoverflow.com/questions/33542959/why-use-packed-args-kwargs-instead-of-passing-list-dict?rq=1 – warvariuc