デフォルト引数
引数にデフォルト値を設定できます。関数を使うときデフォルト引数は省略できます。
以下の例では、timesに1, msgに’高級’というデフォルト値をセットしています。関数を呼ぶときにデフォルト引数を省略すると、デフォルト値が使われていることがわかります。
def comment(item, times=1, msg='高級'): for i in range(times): print(item + msg) comment('りんご',2,'美味しい') comment('いちご',3) comment('バナナ')
【結果】
りんご美味しい りんご美味しい いちご高級 いちご高級 いちご高級 バナナ高級
デフォルト値がリストや辞書型の場合の注意
デフォルト値の評価は1度だけです。
デフォルト引数がリストやディクショナリの場合は、使い回されます。デフォルト値として使う場合以下のような工夫が必要です。
def add(a, l=None): if l is None: l = [3,6] #ここでデフォルト値をセットする l.append(a) return l r1 = add(9) r2 = add(12) print(r1) print(r2)
【結果】
[3, 6, 9] [3, 6, 12]
引数のキーワード指定 キーワード引数
関数の引数にキーワードを指定して使うことができます。
キーワードは関数を定義した時の引数名です。
def status(name, item='薬草', magic='ファイア'): print('名前:',name,'アイテム:',item, '魔法:',magic) status('Ken') status('Ken',magic='ブリザド') status(name='Ren',magic='アルテマ')
【結果】
名前: Ken アイテム: 薬草 魔法: ファイア 名前: Ken アイテム: 薬草 魔法: ブリザド 名前: Ren アイテム: 薬草 魔法: アルテマ
コメントを残す