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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
python中的tcp示例详解
Dec 09 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
python list多级排序知识点总结
Oct 23 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
python 安装移动复制第三方库操作
Jul 13 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
Aug 07 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php 引用(&)详解
2009/11/20 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
Yii CGridView用法实例详解
2016/07/12 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
Laravel5.7框架安装与使用学习笔记图文详解
2019/04/02 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
JS解析XML实例分析
2015/01/30 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python实现简单的四则运算计算器
2016/11/02 Python
Python实现简单生成验证码功能【基于random模块】
2018/02/10 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
Python解析json代码实例解析
2019/11/25 Python
python 读取二进制 显示图片案例
2020/04/24 Python
keras实现多种分类网络的方式
2020/06/11 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
高中毕业生个人自我鉴定
2013/11/24 职场文书
中国梦的演讲稿
2014/01/08 职场文书
关于爱情的广播稿
2014/01/16 职场文书
幼儿园教师请假制度
2014/01/16 职场文书
电气个人求职信范文
2014/02/04 职场文书
司机职责范本
2014/03/08 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL