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的Django框架中包装视图函数
Jul 20 Python
python通过zabbix api获取主机
Sep 17 Python
python3使用QQ邮箱发送邮件
May 20 Python
python 用所有标点符号分隔句子的示例
Jul 15 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
使用Keras实现Tensor的相乘和相加代码
Jun 18 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
Jul 14 Python
Python实现壁纸下载与轮换
Oct 19 Python
运行Python编写的程序方法实例
Oct 21 Python
利用Python函数实现一个万历表完整示例
Jan 23 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
初始Nodejs
2014/11/08 NodeJs
js脚本实现数据去重
2014/11/27 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
平面设计师的工作职责
2013/11/21 职场文书
房地产营销策划方案
2014/02/08 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
社团活动总结范文
2014/04/26 职场文书
工程售后服务承诺书
2014/05/21 职场文书
2014年招生工作总结
2014/11/26 职场文书
给老师的一封感谢信
2015/01/20 职场文书
2019思想汇报范文
2019/05/21 职场文书