Pythonプログラミング入門・サンプル・チュートリアル

Pythonプログラミング入門・サンプル・チュートリアル

【Pythonプログラミング入門】関数のデフォルト引数、デフォルト引数にリストや辞書を使うときは注意

デフォルト引数

  • 関数呼出し時に引数が渡されなかった場合に使用される引数となる
# デフォルト引数
def greeting(name, word="hello"):
    print(name, ',', word, '!!!')

# 引数wordに値を渡さない場合(デフォルト値「hellow」が使用される)
greeting('Sato')

# 引数wordに値を渡した場合
greeting('Yamada', 'See you')

## 結果 f:id:fjswkun:20170216214315p:plain

デフォルト引数にリストや辞書を使うときには注意が必要!

  • デフォルト引数は関数を定義したときに与えられる
# デフォルト引数にリストや辞書を使うときには注意が必要
def persons(arg, result=[]):
    result.append(arg)
    print(result)

## 呼び出すたびにresultには空配列を渡しているつもりが、
## resultに追加されていく
persons('Sato')
persons('Yamada')

f:id:fjswkun:20170216215624p:plain

呼び出すたびに空にする場合は関数内で初期化する

def persons(arg):
    result = []
    result.append(arg)
    print(result)
    
persons('Tanaka')
persons('Ito')

結果

f:id:fjswkun:20170216220230p:plain