引数に初期値を設定

前回は関数の定義の基本的な書き方についてでした。

 

 

今回は引数についてです。

本家公式チュートリアルも参考にしてください。

 

 

引数を取る関数を宣言すると時によく使うテクニック。

 

一つ目は、「初期値を指定する」です。

例えばこんな感じ

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

これは、位置引数という仕組みを成立させるための制約です。

 

次回も引き続き引数についてのテクニックについて取り上げます。