Python のファースト クラス関数
ファーストクラス関数は、言語によってオブジェクトまたは変数として扱われる関数です。 それらを変数に割り当てるか、オブジェクトとして他の関数に渡すことができます。
Python はファーストクラス関数をサポートしています。
Python のファースト クラス関数のプロパティ
- オブジェクト型のインスタンスです。
- 変数に割り当てることができます。
- 別の関数に引数として渡すことができます。
- 関数を返すことができます。
- ハッシュ テーブル、リスト、およびその他のデータ構造に格納できます。
Python のファースト クラス関数の例
オブジェクトとして機能
次のコードでは、関数 square()
を変数 my_sq
に割り当てています。 現在、my_sq
は square()
と同じです。
変数に代入するときに名前を書いたときに、関数を呼び出しませんでした。 実際の関数を参照する関数 my_sq()
を呼び出します。
出力として、渡された数値の 2 乗を取得します。
コード例:
# Python 3.x
def square(x):
return x * x
my_sq = square
result = my_sq(2)
print(result)
出力:
#Python 3.x
4
関数を引数として別の関数に渡す
次のコードでは、オブジェクトを引数として渡すのと同じように、関数 operation()
への引数として関数 square()
を渡しました。
そのメソッドでは、渡された関数をオブジェクト func
に割り当て、func()
を呼び出して関数 square()
を呼び出します。これは、func()
がバックエンドで square()
を参照しているためです。 .
関数を引数として受け取る関数を高階関数と呼びます。 ここで、operation()
は高階関数です。
コード例:
# Python 3.x
def square(x):
return x * x
def operation(func):
result = func(2)
print(result)
operation(square)
出力:
#Python 3.x
4
関数から関数を返す
関数はオブジェクトであるため、関数を別の関数から返すことができます。 次のコードでは、関数 square()
を返す関数 operation()
を作成しました。
返された関数をオブジェクト sq
に保存しました。 ここで、sq
はメソッド square()
を参照します。
最後に、sq
を介してメソッド square()
を呼び出しました。
コード例:
# Python 3.x
def operation():
def square(x):
return x * x
return square
sq = operation()
result = sq(2)
print(result)
出力:
#Python 3.x
4
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn