引数に初期値を設定
前回は関数の定義の基本的な書き方についてでした。
今回は引数についてです。
本家公式チュートリアルも参考にしてください。
引数を取る関数を宣言すると時によく使うテクニック。
一つ目は、「初期値を指定する」です。
例えばこんな感じ
def greet(words="Good morning!")
print(words)
上の例では引数wordsに"Good morning!"が指定されています。
この状態で、関数greetを引数なしで使うと初期値がそのまま出力されます。
>>> greet()
Good morning!
ほかのあいさつに変更したいときは、もちろん引数として指定できます。
>>> greet("How are you today?")
How are you today?
よく使われる値が決まっているような引数には、初期値を設定しておくと便利ですね。
ただ、ちょっと気を付けてほしいところがあります。
それは、引数が複数ある場合の初期値があるものとないものの順番です。
下記を試してみましょう。
def greet(words="Good morning!", name):
print(words, name)
これは、エラーになります。
SyntaxError: non-default argument follows default argument
『構文エラー: 初期値なしの引数が初期値のある引数の後に続いています』とエラーが出力されています。
実は、上記の通り、初期値のある引数は初期値のない引数の後にしか記述できません。
def greet(name, words="Good morning!"):
print(words, name)
今度はOKです。実行してみましょう。
>>> greet(Bob)
Good morning! Bob
これは、位置引数という仕組みを成立させるための制約です。
次回も引き続き引数についてのテクニックについて取り上げます。
