1. 装饰器
装饰器是 Python 的一种高阶函数,它可以在不修改函数内部代码的情况下,给函数增加额外的功能。
案例:记录函数执行时间的装饰器
import time def timing_decorator(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"Function {func.__name__} took {end_time - start_time:.6f} seconds to execute.") return result return wrapper @timing_decorator def my_function(): time.sleep(1) # 模拟耗时操作 print("Function executed.") my_function()
效果图
2. 迭代器
迭代器是一个可以记住遍历位置的对象,它可以从头到尾访问数据集合的元素。
案例:使用迭代器遍历列表
my_list = [1, 2, 3, 4, 5] my_iter = iter(my_list) print(next(my_iter)) # 输出: 1 print(next(my_iter)) # 输出: 2 # ... 可以继续调用 next() 直到 StopIteration 异常
效果图
3. 生成器
生成器是一种特殊的迭代器,它使用 yield
关键字来产生值,并且只在需要时计算下一个值,这可以节省内存。
案例:生成斐波那契数列的生成器
def fibonacci(n): a, b = 0, 1 while a < n: yield a a, b = b, a + b # 使用生成器 for num in fibonacci(10): print(num)
效果图
4. 高阶函数
高阶函数是接受函数作为参数或返回函数作为结果的函数。
案例:高阶函数实现函数映射
def apply_func(func, lst): return [func(x) for x in lst] def square(x): return x ** 2 numbers = [1, 2, 3, 4, 5] squared_numbers = apply_func(square, numbers) print(squared_numbers) # 输出: [1, 4, 9, 16, 25]
效果图
5. 匿名函数
匿名函数(lambda 函数)是没有名称的简短函数。
案例:使用匿名函数对列表进行排序
my_list = [(1, 'a'), (2, 'c'), (3, 'b')] my_list.sort(key=lambda x: x[1]) # 根据元组的第二个元素排序 print(my_list) # 输出: [(1, 'a'), (3, 'b'), (2, 'c')]