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 布尔操作实现代码
Mar 23 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
django创建超级用户过程解析
Sep 18 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
python:HDF和CSV存储优劣对比分析
Jun 08 Python
class类在python中获取金融数据的实例方法
Dec 10 Python
python 中[0]*2与0*2的区别说明
May 10 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
Apr 06 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
php四种定界符详解
2017/02/16 PHP
PHP执行linux命令6个函数代码实例
2020/11/24 PHP
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
javascriptvoid(0)含义以及与"#"的区别讲解
2019/01/19 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
2019/06/06 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
在django模板中实现超链接配置
2019/08/21 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
python线程里哪种模块比较适合
2020/08/02 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
什么是Smart Navigation?
2016/07/03 面试题
党员干部廉洁承诺书
2014/05/28 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
民事答辩状格式范文
2015/05/21 职场文书
小学教师教学反思
2016/02/24 职场文书
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android