Python 进阶:生成器与上下文管理器

主题:生成器与上下文管理器

目标

  • 理解生成器的工作原理与 yield 表达式。
  • 初步了解协程的概念与应用。
  • 学习如何实现自定义上下文管理器。
  • 通过生成器管道处理大文件。

一、生成器与 yield 表达式

1. 生成器的基本概念

生成器是一种特殊的迭代器,能够逐步生成数据,而不是一次性生成并存储所有数据。生成器函数使用 yield 关键字来返回值。

示例:

def my_generator():
    print("生成器开始执行")
    yield 1
    print("生成器继续执行")
    yield 2
    print("生成器结束执行")

# 使用生成器
g = my_generator()
print(next(g))  # 输出:1
print(next(g))  # 输出:2

解释:

  • 生成器函数 my_generator 使用 yield 返回值。
  • 每次调用 next() 时,生成器从上次暂停的位置继续执行。
  • 生成器的状态会被保留,直到生成器完成或抛出 StopIteration

2. 生成器的优势

  • 内存高效:生成器逐个生成数据,适合处理大数据或无限序列。
  • 惰性计算:只在需要时生成数据,避免不必要的计算。

示例:处理大文件

def read_file(filename):
    with open(filename, 'r') as f:
        for line in f:
            yield line.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值