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中操作字符串之startswith()方法的使用
May 20 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
Python中整数的缓存机制讲解
Feb 16 Python
django创建简单的页面响应实例教程
Sep 06 Python
Python进程池Pool应用实例分析
Nov 27 Python
python实现两个字典合并,两个list合并
Dec 02 Python
python getopt模块使用实例解析
Dec 18 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
python海龟绘图之画国旗实例代码
Nov 11 Python
python 实现mysql自动增删分区的方法
Apr 01 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学习之数组的定义和填充
2011/04/17 PHP
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
js实现搜索框关键字智能匹配代码
2020/03/26 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
Python中扩展包的安装方法详解
2017/06/14 Python
基于python实现聊天室程序
2018/07/27 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python 杀死自身进程的实现方法
2019/07/01 Python
django queryset相加和筛选教程
2020/05/18 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
HTML5操作WebSQL数据库的实例代码
2017/08/26 HTML / CSS
四年大学生活的个人自我评价
2013/12/11 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
九年级政治教学反思
2014/02/06 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
数学备课组工作总结
2015/08/12 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
vue ref如何获取子组件属性值
2022/03/31 Vue.js