Python高阶函数-学习如何使用函数作为参数和返回值
Python是一门面向对象的编程语言,它支持高阶函数。高阶函数是指可以接受函数作为参数或将函数作为返回值的函数。使用高阶函数可以让编程更加简洁、灵活、可读性更高。
本文将介绍Python中如何使用函数作为参数和返回值。
1.使用函数作为参数
在Python中,函数可以被当做参数传给其他函数,这种方式称为函数作为参数。假设我们有一个包含5个数的列表,现在要把列表中的每个数都加1,并返回一个新的列表。我们可以这样做:
def add_one(x):
return x + 1
def apply(func, num_list):
result = []
for num in num_list:
result.append(func(num))
return result
numbers = [1, 2, 3, 4, 5]
print(apply(add_one, numbers))
输出结果为:[2, 3, 4, 5, 6]
在上面的代码中,我们定义了一个add_one函数,它接受一个参数x,并返回x加1后的结果。然后我们定义了一个apply函数,它接受两个参数:一个函数和一个列表。在apply函数中,我们遍历了列表中的每个元素,并对每个元素应用传入的函数,将结果保存在一个新的列表中最终返回。
2.使用函数作为返回值
在Python中,函数可以返回另一个函数,这种方式称为函数作为返回值。假设我们要定义一个函数,它的功能是返回两个数之和或差,具体是哪种操作由另一个参数指定。我们可以这样实现:
def operate(operator):
def add(a, b):
return a + b
def sub(a, b):
return a - b
if operator == '+':
return add
elif operator == '-':
return sub
else:
return None
add_func = operate('+')
print(add_func(1, 2))
sub_func = operate('-')
print(sub_func(3, 2))
输出结果为:
3 1
在上面的代码中,我们定义了一个名为operate的函数,它接受一个参数operator。如果operator的值为’+’,则返回add函数,否则返回sub函数。add和sub函数分别接受两个参数,返回它们的和或差。我们分别用’+’和’-’调用operate函数,并将它们返回的函数保存到add_func和sub_func中,然后调用这两个函数,得到相应的结果。
总结:
Python是一门支持高阶函数的语言,可以使用函数作为参数或函数作为返回值。使用高阶函数可以让编写代码更加灵活,可读性更高。在使用函数作为参数时,我们需要注意传入的函数要和接收的参数类型与数量匹配。在使用函数作为返回值时,我们可以使用函数嵌套来定义多个内部函数,选择需要返回的函数来实现不同的逻辑。
