28、Python 协程、生成器与机器学习算法实践

Python 协程、生成器与机器学习算法实践

1. 协程与生成器基础

在 Python 中,协程和生成器是非常重要的概念。首先来看 match_regex 协程,创建它时不会执行任何代码,只是创建一个协程对象。之后,外部代码调用 next() 启动代码运行,此时它会存储 filename regex 两个变量的状态。接着读取文件中的所有行并反向迭代,将每行与传入的正则表达式进行比较,直到找到匹配项。找到匹配项后,协程会从正则表达式中生成第一组数据并等待。未来某个时刻,其他代码会传入新的正则表达式进行搜索。

get_serials 生成器则负责决定哪些行是重要的。它不关心文件中的具体行,首先从 match_regex 协程构造函数创建一个匹配器对象,并传入默认的正则表达式。然后将协程推进到第一个 yield 语句,存储返回的值。接着进入循环,指示匹配器对象根据存储的设备 ID 搜索总线 ID,再根据该总线 ID 搜索序列号。

协程和生成器在迭代机制上有所不同。普通生成器通过抛出 StopIteration 异常来表示退出,而协程通常不遵循这种迭代机制,数据通常是通过 send 方法推送给它。当需要结束协程时,可以调用 close() 方法,该方法会在协程等待传入值的位置抛出 GeneratorExit 异常。如果需要在协程内部抛出异常,可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值