序論
引数を使いこなすことによって,構成できるアプリケーションの自由度が高まる.例えば,ある関数だけで渡したい引数があったときの処理を追加できれば,コードの改変は最小限で済むはずだ.以下5つの引数を覚えていって欲しい.
本論
- 位置引数(Positional Arguments)
最もよく使われる.順番さえ間違わなければ問題ない.私は量が増えると辞書型で渡してる.def func(a, b): print(a, b) func(1, 2) # a = 1, b = 2
- デフォルト引数(Default Arguments)
切り替えるモードがあるときのデフォルト値としては良さそう.デフォルト値を与えてる引数は後ろに書かないといけない.def func(a, b=2): print(a, b) func(1) # a = 1, b = 2 func(1, 3) # a = 1, b = 3
- キーワード引数(Keyword Arguments)
順番無視して書き込める.一応,引数の意味が確認できるので,可読性は上がる.def func(height, weight): print("height=",height, ",weight=",weight) func(weight=70, height=168) # height = 168, weight = 70
- 可変長引数(Arbitrary Arguments)
引数の数が定まっていない場合,* を頭につけて,リストに任意の数渡せる.記述する順番は,位置引数の後に記述し,また,後述する可変長キーワード引数の前に記述する.def func(a, *args): print("a=",a, ",*args=",args) func(1) # a=1, *args= func(1,2,3,4) # a=1, *args=2,3,4
- 可変長キーワード引数(Arbitrary Keyword Arguments)
任意の数のキーワード引数を受け取れる.一番最後に記述する.関数定義時に未定義の任意の数の名前を受け取りたい時に必要.def func(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") func(a=1, b=2, c=3) # a:1, b:2, c:3
結論
今回は,引数についてまとめた.意識しておくとふとした時に自由度があがる.知らなくても問題ないが知っておくと少し読みやすいコードになるので,意識しておくに越したことは無い.