はじめに
Pythonの開発を行っているときに関数の定義方法について調べたのでまとめました。この記事では、関数の定義、「def」についてフォーカスを当ててサンプルソースを使って説明します。
関数を使う理由は知っているから使い方だけ知りたいかたは、目次から「関数を定義する」へ飛んでください。
対象レベル
Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。
詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。
関数を使わない場合
まず、なぜ関数を使うと便利かということについて軽く話していきたいと思います。
以下のサンプルソースを見てください「Hello world 」、「Hello cat 」、「Hello python 」と「Hello」が共通しています。一旦動かしてみましょう。
Hello world 」、「Hello cat 」、「Hello python 」が出力されました。

これがもし、「Hello elephant」、「Hello dolphin」と増えていくと毎回「 Hello」を記述するのが大変です。
この例は極端ですが、実際の現場の開発では、複雑な処理が複数回呼ばれることが多いです。もし、これらの処理を関数を使わないで実装すると修正が必要になった場合すべての処理を修正しなくてはなりません。
関数を定義しておけば該当箇所を一か所修正すれば済みます。それでは、次の章で関数の定義について説明していきます。
関数を定義する
それでは、関数の定義について説明していきます。定義の仕方は以下の通りで「def 関数名():」で定義することが出来ます。引数が必要な場合は 「def 関数名(引数):」と定義します。そして、インデントを下げて処理を記述します。
関数を呼び出す場合は、関数名に引数を渡してあげます。
def 関数名(引数): 関数内の処理関数名(引数)
ちなみに関数の名前は小文字の英単語を「_」(アンダースコア)で繋げるのが推奨です。命名規則については以下の記事にまとめています。
工事中
下のサンプルソースは先ほどのソースから関数を切り出して定義しています。処理の内容としては、引数を受け取り受け取った引数の前に「Hello」を付ける処理です。
実際に動かしてみると、先ほどのソース「 sample_function_definition1.py 」と同じ実行結果になっていますね。

複数の引数を定義する場合
引数が複数の関数も定義できます。この場合は第一引数の後にカンマを付けて第二引数を定義してあげます。
呼び出す場合は引数は2つ指定してください。
スポンサーリンク
def 関数名(第一引数, 第二引数):
下のサンプルソースでは二つの引数を受け取って「Hello」の後に「第一引数」と「第二引数」を連結して出力する処理です。「Hello cat python」と出力される想定です。
実際に動かしてみた結果が以下になります。想定通り 「Hello cat python」 と出力されています。

まとめ
関数を定義する場合は、「def 関数名(引数):」で定義する。
定義した関数を呼び出す場合は、「関数名(引数)」で呼び出す。