Python | 引数の渡し方がいろいろあるのでメモ
Pythonの引数の渡し方にいろいろあるのでまとめました。引数に限らずPythonには特徴的な構文が見られるのでよく覚えておきましょう。
基本形
基本形がこちら。一般的な渡し方の他に関数側の変数名(キーワード引数)で指定する方法もあります。キーワード引数の場合順番は固定ではありません。
def test(name, age, address): print(f'名前:{name}, 年齢:{age}歳, 住所:{address}') test('鈴木', 28, '東京都') test(name='渡辺', age=34, address='福岡県') test(name='山田', address='大阪府', age=41) #順番は変更可能 # 名前:鈴木, 年齢:28歳, 住所:東京都 # 名前:渡辺, 年齢:34歳, 住所:福岡県 # 名前:山田, 年齢:41歳, 住所:大阪府
辞書型で渡す
辞書型(他の言語のオブジェクト型に近い)で渡す方法もあります。渡す際には辞書に**をつけます。要素のキーが引数名、値が引数の値として渡ります。
def test(name, age, address): print(f'名前:{name}, 年齢:{age}歳, 住所:{address}') arg = {'name':'佐藤', 'age':33, 'address':'北海道'} test(**arg) # 名前:佐藤, 年齢:33歳, 住所:北海道
初期値を設定する
関数側であらかじめ初期値を設定することができます。初期値を設定しておくと呼び出し時に引数を省略できます。もちろん別の値を渡せばその値が使われます。
def test(name='田中', age=27, address='愛知県'): print(f'名前:{name}, 年齢:{age}歳, 住所:{address}') test() test('鈴木', 28, '東京都') test('鈴木', 28) # 名前:田中, 年齢:27歳, 住所:愛知県 # 名前:鈴木, 年齢:28歳, 住所:東京都 # 名前:鈴木, 年齢:28歳, 住所:愛知県
位置を厳格に指定する
キーワード引数であれば位置を変更できるのですが、それが嫌な場合は/
を加えてそれ以降を位置指定にすることができます。キーワード引数でもOKですが位置の入れ替えは不可です。
def test(name, age, /, address): print(f'名前:{name}, 年齢:{age}歳, 住所:{address}') test('鈴木', 28, '東京都') test('鈴木', 28, address='東京都') # test('鈴木', age=28, address='東京都') #エラー # 名前:鈴木, 年齢:28歳, 住所:東京都 # 名前:鈴木, 年齢:28歳, 住所:東京都
キーワード引数のみ許可
キーワード引数専用を指定することもできます。間に*
を入れることでそれ以降の引数をキーワード引数以外を拒否することができます。
def test(name, age, *, address): print(f'名前:{name}, 年齢:{age}歳, 住所:{address}') test('山田', 28, address='大阪府') test('山田', age=28, address='大阪府') # test('山田', 28, '大阪府') #エラー # 名前:山田, 年齢:28歳, 住所:大阪府 # 名前:山田, 年齢:28歳, 住所:大阪府
スポンサーリンク