ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Python - 関数の定義、def 文

初めに

 Python で自作の関数を定義する方法をまとめます。ローカル変数、グローバル変数などについても触れます。

関数の定義の仕方、def 文

 def 文を使って、関数を定義します。

def add_numbers(x, y):
    result = x + y
    return result

 上のコードでは、add_numbers という2つの引数を持つ関数を定義しています。関数の処理の中身はインデントを下げ、記述していきます。

 関数の戻り値は return 文で記述します。return 文がない場合は、自動的に None が返されます。

関数の呼び出し

位置引数

 次のように引数を順番に並べる方法を用いて、引数を指定する方法を位置引数といいます。

# 関数の定義
def add_numbers(x, y):
    result = x + y
    return result

# add_numbers関数を使って値を足し合わせる
sum_result = add_numbers(3, 5) #関数の呼び出し
print(sum_result)
キーワード引数

 引数名を指定して、関数を呼び出す記法をキーワード引数といいます。キーワード引数の場合、位置引数と違って、好きな順番で引数を指定できます。

def add_numbers(x, y):
    result = x + y
    return result

# キーワード引数を使ってadd_numbers関数を呼び出す
sum_result = add_numbers(x=3, y=5)
print(sum_result)

 また、位置引数とキーワード引数を混ぜて使用することもできます。

モジュールスコープ、ローカルスコープ

説明
モジュールスコープ(Module scope) 関数以外の部分
ローカルスコープ(Local scope) 関数内の部分

ローカル変数、グローバル変数

変数 説明
ローカル変数 関数の中(ローカルスコープ)で代入した変数(引数を含む)
グローバル変数 関数の外部(モジュールスコープ)で代入された変数

(例)

def add_numbers(x, y):
    result = x + y
    return result

sum_result = add_numbers(3, 5) #関数の呼び出し
print(sum_result)

 上の例では、add_numbers 関数内で使われている x, y, result はローカル変数、sum_result はグローバル変数になります。

 ローカル変数は、関数を実行しているあいだのみ、参照できます。関数外からは参照できません。グローバル変数は、どんな場合でも参照できます。

デフォルト引数

 関数定義時に、引数が指定されなかった場合に使われるデフォルト値を指定することができます。

def 関数名(引数名=デフォルト値):

(例)

def add_numbers(x=0, y=1):
    result = x + y
    return result

result1 = add_numbers()  # x=0, y=1 なので、result1には 0 + 1 = 1 が代入されます。
result2 = add_numbers(3)  # x=3, y=1 なので、result2には 3 + 1 = 4 が代入されます。
result3 = add_numbers(y=5)  # x=0, y=5 なので、result3には 0 + 5 = 5 が代入されます。