非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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歳, 住所:大阪府
 

 

 

スポンサーリンク

 - Python