関数の定義

基礎編

Python では、処理を分離するために関数を使えます。また、関数をまとめて整理するために、モジュールやパッケージの仕組みが用意されています。これらを利用すれば、大きな機能を小さな機能の組み合わせで実現できるようになります。

関数の構造

関数の定義は、次の形式で記述します。

def 関数名(引数名1, 引数名2, ...):
    処理1
    処理2
    return 戻り値

関数は、ある値を受け取って結果となる値を返すようになっています。受け取る値を「引数」、返す値を「戻り値」と呼びます。引数は、関数定義の際に、関数名のの後に記述します。戻り値は関数の実行部内でreturn 文で記述します。

def add(a, b):
    c = a + b
    return c
add(1, 2)

引数でも、戻り値でも必須ではありません。

def add():
    print('addを呼び出す')
add()

キーワード引数

Pythonは、関数呼び出しの際に引数名を明示的に指定する方法を提供しています。引数名を指定して呼ひ出す方法を「キーワード引数」と呼びます。また、キーワード引数でない通常の引数を、「位置引数」と呼びます。

def add(a, b):
    c = a + b
    return c
add(a=2, b=1)
add(b=3, a=4)

可変長引数

呼び出しごとに引数の数を変えられるようにしたのもを「可変長引数」と呼びます。
引数名の前に「*」を追加します。

def add_many(*values):
    result = 0
    for v in values:
        result += v
    return result
add_many(1, 2)
add_many(1, 2, 3, 4, 5, 6, 7, 8, 9)

引数をリストから股開して渡す均合にも「*」を使用します。

valueList = [1, 2]
add_many(*valueList)

引数のデフォルト値

引数にはデフォルト値を設定できます。

def greeting(name="world"):
    print("hello, {0}!".format(name))
greeting()
greeting("Python")

関数のドキュメント

関数にはその関数がどのような処理を行うのか説明するドキュメントを設定できます。関数宣言の直後に文字列文字列リテラルを書いておくと、その内容が関数のドキュメントとして後から参照できるようになります。

def greeting(name="world"):
    """ これはHello,world!を表示する関数です。"""
    print("hello, {0}!".format(name))

greeting.__doc__