【Python】引数全てにデフォルト値がある場合、2番目以降の引数にだけ値を渡したい

以下のような引数全てにデフォルト値があるメソッドがあるとします。

def greeting(s1: str='Hello', s2: str='World'):
    print(s1 + ' ' + s2)

基本は、引数に値を渡していればその値を、渡していなければデフォルト値が適応されます。

greeting() # Hello World

greeting('Good') # Good World

greeting('Good', 'morning') # Good morning 

例えば、
ここで Hello morning と表示したい場合、以下でも実質一緒ですが、
デフォルト値と同じ値を渡すのは微妙ですね。

greeting('Hello', 'morning') # Hello morning 

その場合、値を渡す変数名を指定して呼び出せば 適応されます。

greeting(s2='morning') # Hello morning

コメントを残す

メールアドレスが公開されることはありません。