Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのファーストクラス関数


さまざまなプログラミング言語では、ファーストクラスオブジェクトはそれらのオブジェクトであり、均一に処理できます。ファーストクラスオブジェクトは、データ構造、他の関数の一部のパラメーター、制御構造などとして格納できます。ファーストクラスオブジェクトのすべてのプロパティをサポートしている場合、Pythonの関数はファーストクラス関数であると言えます。

ファーストクラス関数のプロパティは何ですか?

  • これはオブジェクトタイプのインスタンスです
  • 関数は変数として保存できます
  • 他の関数の引数として第一級関数を渡す
  • 他の関数から関数を返す
  • 関数をリスト、セット、またはその他のデータ構造に格納します。

最初に、Pythonの関数をオブジェクトとして使用する方法を説明します。 Pythonでは、関数を変数として割り当てることができます。変数として割り当てるために、関数は呼び出されません。したがって、括弧「()」はありません。

サンプルコード

def cube(x):
   return x*x*x
res = cube(5)
print(res)
my_cube = cube #The my_cube is same as the cube method
res = my_cube(5)
print(res)

出力

125
125

次に、関数を別の関数の引数として渡す方法を見ていきます。これが例です。

サンプルコード

def cube(x):
   return x*x*x
defmy_map(method, argument_list):
   result = list()
   for item in argument_list:
      result.append(method(item))
   return result
my_list = my_map(cube, [1, 2, 3, 4, 5, 6, 7, 8]) #Pass the function as argument
print(my_list)

出力

[1, 8, 27, 64, 125, 216, 343, 512]

これが第一級関数の3番目のプロパティです。この場合、ある関数を別の関数から返します。

サンプルコード

defcreate_logger(message):
   deflog():
      print('Log Message: ' + message)
   return log #Return a function
my_logger = create_logger('Hello World')
my_logger()

出力

Log Message: Hello World

  1. Pythonのissubset()関数

    この記事では、Python標準ライブラリで利用可能なissubset()関数の実装と使用法について学習します。 issubset()メソッドは、セットのすべての要素が別のセットに存在する場合(引数として渡される場合)はブール値のTrueを返し、それ以外の場合はブール値のFalseを返します。 下の図では、BはAのサブセットです。AとBが同一のセットである場合、AはBの適切なサブセットであることを意味します。これは、両方のセットに同じ要素が含まれていることを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値 boolean True/

  2. Intersection()関数Python

    この記事では、任意のセットで実行できるintersection()関数について学習します。数学によると、共通部分とは、2つのセットから共通の要素を見つけることを意味します。 構文 <set name>.intersection(<set a1> <set a2> ……..) 戻り値 引数として渡されるセット内の共通要素。 例 set_1 = {'t','u','t','o','r','i','a','l&