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爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
Python操作Word批量生成文章的方法
Jul 28 Python
python学习 流程控制语句详解
Jun 01 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
python实现简易云音乐播放器
Jan 04 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
python+Splinter实现12306抢票功能
Sep 25 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
python实现文件分片上传的接口自动化
Nov 19 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
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
php实现的验证码文件类实例
2015/06/18 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
初识PHP中的Swoole
2016/04/05 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
python实现文件快照加密保护的方法
2015/06/30 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
详解pandas数据合并与重塑(pd.concat篇)
2019/07/09 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
python Tensor和Array对比分析
2020/01/08 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
Keras搭建自编码器操作
2020/07/03 Python
python tkinter实现连连看游戏
2020/11/16 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
会计电算化应届生自荐信
2014/02/25 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
同意报考证明
2015/06/17 职场文书
python如何进行基准测试
2021/04/26 Python