Python中的头等函数
在不同的编程语言中,FirstClass对象是可以统一处理的那些对象。可以将FirstClass对象存储为数据结构,其他一些函数的某些参数,控制结构等。我们可以说Python中的一个函数是FirstClassFunction,如果它支持FirstClass对象的所有属性。
头等功能的属性是什么?
它是对象类型的实例
函数可以存储为变量
将FirstClass函数作为其他函数的参数传递
从其他函数返回函数
将函数存储在列表,集合或其他数据结构中。
首先,我们将了解如何将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