欢迎访问宙启技术站
智能推送

Python高阶函数详解及应用示例

发布时间:2023-07-06 10:16:15

Python高阶函数是指将其他函数作为参数或者返回值的函数。高阶函数在Python中非常有用,可以简化代码,提高代码的可读性和复用性。下面我们来详细讲解高阶函数以及一些实际应用示例。

1. 函数作为参数

函数可以作为另一个函数的参数传递,这样可以在调用函数时动态指定函数的行为。示例代码如下:

def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def calculator(func, x, y):
    return func(x, y)

result = calculator(add, 3, 2)
print(result)  # 输出 5

result = calculator(sub, 3, 2)
print(result)  # 输出 1

在上面的示例中,calculator函数接收一个func参数,并调用该参数指定的函数进行计算。

2. 函数作为返回值

函数可以将另一个函数作为返回值返回。这样可以将一些通用的部分通过函数封装起来,返回的函数可以根据不同的需求进行定制。示例代码如下:

def make_increment(n):
    def increment(x):
        return x + n
    return increment

inc2 = make_increment(2)
print(inc2(5))  # 输出 7

inc3 = make_increment(3)
print(inc3(5))  # 输出 8

在上面的示例中,make_increment函数返回了一个内部定义的increment函数,increment函数在执行时使用了外部的变量n

3. 函数装饰器

函数装饰器是一种特殊的高阶函数,它可以用来修改其他函数的行为。常见的应用场景是添加日志、计时等功能。示例代码如下:

import functools
import time

def log(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        print('开始执行函数', func.__name__)
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print('函数执行时间', end_time - start_time)
        print('函数执行结果', result)
        return result
    return wrapper

@log
def add(x, y):
    return x + y

result = add(3, 2)
print(result)  # 输出 5

在上面的示例中,log函数是一个函数装饰器,它接收一个函数作为参数,并返回一个新的包装函数wrapperwrapper函数在执行前会打印日志,并在执行后打印执行时间和结果。

上述是对Python高阶函数的详细解释以及应用示例。希望通过这些示例代码能够帮助读者更好地理解和使用高阶函数,提高Python编程的效率和质量。