Python:如何使用生产器函数实现可迭代对象
注:了解生产器函数,查询:Python:生成器函数
案例:
- 需求:实现一个可迭代的类,它能迭代出给定范围内所有素数;
- 思路:1)构造一个类(如:PrimeNumbers()),给定两个参数,如:1、100,来限定搜索的范围;2)对实例(如:pn)进行迭代,得到目标数据;
-
方案:使用生成器函数,来实现可迭代对象;
- 将该类的__iter__方法实现成生成器函数,每次yield返回一个素数;
#在问题8~9中,实现可迭代对象的方法:通过实现一个包含next方法的迭代器对象的类,来实现可迭代对象;
- pn = PrimeNumbers(1, 100)
- for k in pn:
- print(k)
代码:
class PrimeNumbers: def __init__(self, start, end): self.start = start self.end = end def isPrimeNum(self, k): if k < 2: return False for i in range(2, k): if k % i == 0: return False return True def __iter__(self): for k in range(self.start, self.end + 1): if self.isPrimeNum(k): yield k for x in PrimeNumbers(1, 100): print(x)
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决