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的ORM框架SQLAlchemy入门教程
Apr 28 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
python机器学习实战之K均值聚类
Dec 20 Python
python生成lmdb格式的文件实例
Nov 08 Python
对python生成业务报表的实例详解
Feb 03 Python
基于django传递数据到后端的例子
Aug 16 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
pytorch进行上采样的种类实例
Feb 18 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
javascript自执行函数
2017/02/10 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
通过封装scroll.js 获取滚动条的值
2018/07/13 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python操作串口的方法
2015/06/17 Python
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
python实现三壶谜题的示例详解
2020/11/02 Python
css3实现的多级渐变下拉菜单导航效果代码
2015/08/31 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
中学生校园广播稿
2014/01/16 职场文书
新三好学生主要事迹
2014/01/23 职场文书
八项规定对照检查材料
2014/08/31 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
文明礼仪倡议书
2015/04/28 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js