高阶函数指的是能够接受函数作为参数或者返回函数作为结果的函数。在 Python 中,函数名可以作为变量名使用,因此我们可以将函数作为参数传递给另一个函数,或者将函数作为结果返回。高阶函数在函数式编程中非常常见,它可以使代码更加简洁、灵活和易于复用。
以下是一个示例,演示了如何定义一个接受函数作为参数的高阶函数:
def apply(func, arg): return func(arg) def add_one(num): return num + 1 print(apply(add_one, 2)) # 输出 3
在上面的例子中,apply 函数接受两个参数,一个是函数名,一个是函数的参数。它通过调用传入的函数来处理参数,并将结果返回。
Python装饰器是一种语法结构,它允许我们通过在代码中包装函数、方法、类等对象来修改它们的行为。装饰器本质上是一个可调用对象,它接受一个函数作为输入,并返回一个新的函数作为输出。当我们在函数定义前面添加一个装饰器时,Python会自动将函数传递给装饰器,并用装饰器返回的新函数替换原始函数定义。
装饰器通常用于在不修改现有代码的情况下扩展或修改现有函数或类的行为,以实现代码的重用和简化。常见的装饰器包括用于记录函数执行时间、验证函数输入参数、缓存函数返回结果等。
下面是一个简单的装饰器示例,用于记录函数执行时间:
import time
def timeit(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"Function {func.__name__} took {end-start} seconds to execute.")
return result
return wrapper
@timeit
def my_function():
time.sleep(2)
my_function()