メモ06【可変長引数】

可変長引数とか。

コードと選択肢は以下になります。

1 (‘Noro’, ‘Nakao’)
2 (‘Noro’, ‘Nakao’, ‘Miyaoka’)
3 Errorとなる。
4 Noro

実行結果

4 Noro

メモ

kahenの引数で「teacher,*mentor」となっていますね。
*が入っているので引数の数が呼び出し元と一致していなくても今回の場合、
エラーになりません。呼び出し元の最初の「Noro」が「teacher」へ格納され、「Nakao,Miyaoka」が「*mentor」へと格納されます。
仮に以下のような呼び出し元だった場合
「kahen(‘abcde’,’Noro’, ‘Nakao’, ‘Miyaoka’)」
「abcde」が「teacher」へ格納され、「Noro,Nakao,Miyaoka」が「*mentor」へと格納されます。

あ、関数で「def kahen(teacher, *mentor)」が
「def kahen(*mentor,teacher):」と先に*が入っているとエラーになります。
この時のエラーは「TypeError」ですね。

以上となります。
最後まで読んで頂きありがとうございます。