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实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
在Python中操作时间之tzset()方法的使用教程
May 22 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python3.8中使用f-strings调试
May 22 Python
Python中新式类与经典类的区别详析
Jul 10 Python
python利用7z批量解压rar的实现
Aug 07 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
python中threading和queue库实现多线程编程
Feb 06 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 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中几种常见安全设置详解
2010/04/06 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
iframe实用操作锦集
2014/04/22 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
使用jquery动态加载js文件的方法
2014/12/24 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
javascript实现简单的全选和反选功能
2016/01/05 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
python计算列表内各元素的个数实例
2018/06/29 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
python设置随机种子实例讲解
2019/09/12 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
2014年学雷锋活动总结
2014/06/26 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
2015年项目工作总结
2015/04/29 职场文书
初中运动会前导词
2015/07/20 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技