キーワード可変長引数の使い方がまったく分かりません。
def foo(**kargs):
print(kargs)
foo(bar="bar",hoge="hoge",num=999)
このコードを使って細部まで詳しく説明していただけるとありがたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/30 11:52
回答3件
0
ベストアンサー
前提としてキーワード引数を理解する必要があります。
python
1def hoge(text="hoge"): 2 print(text) 3 4hoge() #=> hoge 5hoge(text="fuga") #=> fuga
このように振る舞います。省略した場合はデフォルト値が入れられ、明示的に「名前=値」として呼び出すとデフォルト値以外を指定できます。
キーワード可変長引数は、任意の名前のキーワード引数として渡した引数を、受け取る側では辞書として取り扱えるような仕組みです。
python
1def hoge(**kargs): 2 print(kargs) 3 4hoge(text="hoge") 5#=> {'text': 'hoge'} 6hoge(string="hoge") 7#=> {'string': 'hoge'} 8hoge(text="hoge", string="fuga") 9#=> {'string': 'fuga', 'text': 'hoge'}
このように引数名と値の辞書になります。
こんな機能、普通に使う分にはほとんど必要になることはないのですが、たまに使わざるを得ないときがあります。初心者に説明するのは骨なので書きません。いずれにせよ当分使う機会はないはずです。
次からは自分で調べてください・・・
参考:
Pythonの可変長引数(*args, **kwargs)の使い方 | Python / note.nkmk.me
投稿2018/04/30 12:05
編集2018/04/30 12:33総合スコア30933
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/30 12:20
2018/04/30 12:22 編集
2018/04/30 12:24
2018/04/30 12:31
0
キーワード可変長引数が「ある時」
def foo(**kargs): print(kargs) foo(bar="bar",hoge="hoge",num=999)
キーワード可変長引数が「ない時」
def foo(kargs={}): print(kargs) foo({bar:"bar",hoge:"hoge",num:999}) # もしくはfoo(dict(bar="bar",hoge="hoge",num=999))
「ない時」が理解できれば、「ある時」は「ない時」の亜種だと感じられると思います。
投稿2018/04/30 20:16
総合スコア6142
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。