Python中的头等函数

在不同的编程语言中,First Class对象是可以统一处理的那些对象。可以将First Class对象存储为数据结构,其他一些函数的某些参数,控制结构等。我们可以说Python中的一个函数是First Class Function,如果它支持First Class对象的所有属性。

头等功能的属性是什么?

  • 它是对象类型的实例

  • 函数可以存储为变量

  • 将First Class函数作为其他函数的参数传递

  • 从其他函数返回函数

  • 将函数存储在列表,集合或其他数据结构中。

首先,我们将了解如何将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]

这是一流函数的第三个属性。在这种情况下,我们将从另一个函数返回一个函数。

范例程式码

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