53 views
(1) 便利な使い方 その1
こんな関数があるとする。
def my_func( aaa, bbb ): return aaa + bbb
普通に使えばこう呼び出す。
my_func( 10, 30 ) my_func( aaa=10, bbb=30 ) my_func( bbb=30, aaa=10 )
このとき、
ディクショナリ型データを作っておき、
それをアンパックして関数に渡す。
ということができる。
ccc = {"aaa": 10, "bbb": 30} my_func( **ccc )
** がアンパック構文だ。
アンパックされると、以下のように関数の引数として展開される。
my_func( aaa=10, bbb=30 )
引数の数が多くなったときに便利だ。
(2) 便利な使い方 その2
こんな関数があるとする。
def show_profile( **ppp ): for key, value in ppp.items(): print(f"{key}: {value}")
通常は関数側で引数を定義しているが、この使い方では 任意の数のパラメータを渡せる。
show_profile( aaa="AAA", bbb="ZZZ", ccc="VVV" )
実行結果は以下の通り。
aaa: AAA bbb: ZZZ ccc: VVV
(3) 便利な使い方 その3
複数の dictionary型データをまとめることができる。
単純な連結ではなく、キーが重複していれば、後に指定した方で上書き される。
defaults = {'language': 'ja', 'theme': 'light'} user_settings = {'language': 'en'} settings = {**defaults, **user_settings} print(settings)
実行結果はこうなる。ja が en で上書きされた。
{'language': 'en', 'theme': 'light'}