高阶函数:
高阶函数是指那些可以接受一个或多个函数作为参数,或者返回一个函数的函数。这些函数通常用于操作其他函数,例如将它们组合、转换或应用到数据结构上。
Python内置了一些高阶函数,包括:
map(function, iterable)
: 对iterable
中的每个元素应用function
并返回结果。filter(function, iterable)
: 返回一个迭代器,只包含iterable
中使得function(item)
为True的元素。reduce(function, iterable[, initializer])
: 使用二元操作符function
对iterable
进行累积计算,返回单一的结果。sorted(iterable, key=None, reverse=False)
: 返回一个排序后的列表,根据可选参数key
指定的函数来获取排序依据。functools.partial(func, *args, **kwargs)
: 返回一个新的函数,它是func
的部分参数已经被固定的一个版本。
装饰器实现记录函数执行时间:
以下是一个简单的Python装饰器,用于记录函数的执行时间:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"{func.__name__} took {end_time - start_time:.6f} seconds")
return result
return wrapper
@timer
def my_function(n):
time.sleep(n)
if __name__ == "__main__":
my_function(2) # 输出:my_function took 2.000000 seconds
在这个例子中,我们定义了一个名为timer
的装饰器,它会包装原始函数并在其前后分别记录时间。当调用装饰过的函数时,它会输出函数的执行时间。使用@timer
语法糖可以方便地将装饰器应用于my_function
。