Python チュートリアル - 関数
このセクションでは、以下の内容を学びます
- 関数とは
- 関数を作成する方法
- 関数の種類
Python 関数とは
関数は、特定のタスクを実行するための多数のステートメントを含むプログラムの小さなブロックです。さまざまなタスクを実行する数千行のプログラムがある場合、プログラムを小さなモジュール(ブロック)に分割する必要があります。これにより、可読性が向上し、複雑さが軽減されます。
Python 関数を定義する方法
以下は、関数を定義するための構文です。
def functionName(arguments):
"""This is the definition of this function"""
statements
return returnParam
- キーワード
def
は関数を定義するために使用されます。 functionName
は関数の名前です。arguments
オプションです。引数は、操作を実行する関数に値を提供します。- コロン(
:
)は関数ヘッダーを終了します。 """This is the definition of this function"""
はdocstring
であり、関数の動作を説明するオプションです。ステートメント
は関数の本体を指します。- ステートメント
return
は、オプションで結果を呼び出し元に返します。
Python 関数の例
def language(p):
"""Function to print a message"""
print("Programming language:", p)
ここでは、呼び出し側から渡される 1つの引数 p
を持つ関数 language
が定義されています。関数内には、引数 p
を含むメッセージを出力するための docstring と print
ステートメントがあります。
Python で関数を呼び出す
関数は、プログラム内のどこからでも呼び出すことができます。関数は、必須パラメーターを使用して名前で呼び出すことができます。
language("Python")
Programming language: Python
return
ステートメント
return
ステートメントは、関数が呼び出されるコードに制御を戻します。
関数定義の終了を示します。
return
の構文は次のとおりです。
return [values_to_be_returned]
関数に return
ステートメントがない場合、None
オブジェクトが返されます。
return
ステートメントの使用例
def square(n):
return n * n
print("Square of 4=", square(4))
Square of 4=16
このコードでは、関数は print
関数で呼び出され、4 が引数として渡されます。関数の内部には、評価される式 n * n
があり、結果は関数が呼び出された場所に返されます(print
ステートメント)。
Python 変数のスコープと寿命
変数のスコープは、変数にアクセスできる場所です。関数内で変数が宣言されている場合、その関数の外部からはアクセスできません。このタイプの変数はローカル変数と呼ばれ、宣言されている関数にのみアクセスされます。
変数のライフタイムは、変数がメモリに存在する時間です。関数内で変数が宣言されている場合、コントロールが関数から飛び出すと、変数のメモリが解放されます。
以下の例を参照してください。
def fun():
a = 12
print("Value of a inside function:", a)
a = 24
fun()
print("Value of a outside function:", a)
Value of a inside function: 12
Value of a outside function: 24
このコードでは、関数内の変数 a
と関数外の変数 a
は異なる変数です。
外部から関数内で宣言された変数にアクセスしようとすると、エラーが発生します-NameError name 'x' is not defined
。ただし、関数の外部で宣言された変数にはグローバルスコープがあり、内部からアクセスできます。
関数の種類
Python の関数は、2つのタイプに分類できます。
組み込み関数
:定義済みの意味を持ち、特定のタスクを実行します。ユーザー定義関数
:ユーザー定義のタスクを実行するための任意の数のステートメントを含むユーザーによって定義されます。