python使用生成器实现可迭代对象


Posted in Python onMarch 20, 2018

本文实例为大家分享了python使用生成器实现可迭代对象的具体代码,供大家参考,具体内容如下

案例分析:      

        实一个可迭代对象的类,它能迭代出给定范围内所有的素数:

              pn = Number(1, 30)

              for k in pn:

                     print(k)

       结果为:2,3,5,7,11,13,17,19,23,29

如何解决这个问题?

将该类的__iter__方法实现成生成器函数,每次yield返回一个素数

#!/usr/bin/python3
 
 
class Number(object):
 def __init__(self, start, end):
  self.start = start
  self.end = end
   
 # 判断一个数字是否是素数
 def get_num(self, k):
  if k >= 2:
   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.get_num(k):
    # 是素数yield出去
    yield k
     
if __name__ == '__main__':
 num = Number(2, 30)
 for i in num:
  print(i)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python实现堆排序的方法详解
May 03 Python
使用Python读取大文件的方法
Feb 11 Python
python距离测量的方法
Mar 06 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
python获取服务器响应cookie的实例
Dec 28 Python
谈一谈基于python的面向对象编程基础
May 21 Python
python字典改变value值方法总结
Jun 21 Python
Python使用python-docx读写word文档
Aug 26 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
浅谈Python中的作用域规则和闭包
Mar 20 #Python
python如何实现反向迭代
Mar 20 #Python
python利用高阶函数实现剪枝函数
Mar 20 #Python
python flask中静态文件的管理方法
Mar 20 #Python
python web基础之加载静态文件实例
Mar 20 #Python
python如何修改装饰器中参数
Mar 20 #Python
python MySQLdb使用教程详解
Mar 20 #Python
You might like
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP中cookie知识点学习
2018/05/06 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
Python实现的石头剪子布代码分享
2014/08/22 Python
Python 多线程Threading初学教程
2017/08/22 Python
python3如何将docx转换成pdf文件
2018/03/23 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
QML使用Python的函数过程解析
2019/09/26 Python
Python类中self参数用法详解
2020/02/13 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
物业门卫岗位职责
2013/12/28 职场文书
会计演讲稿范文
2014/05/23 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
2014企业年终工作总结
2014/12/23 职场文书
电力安全学习心得体会
2016/01/18 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS