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(Tornado)模拟登录小米抢手机
Nov 12 Python
python实现360皮肤按钮控件示例
Feb 21 Python
使用python实现拉钩网上的FizzBuzzWhizz问题示例
May 05 Python
Python入门篇之数字
Oct 20 Python
编写Python脚本来获取mp3文件tag信息的教程
May 04 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python之reload流程实例代码解析
Jan 29 Python
python 列表降维的实例讲解
Jun 28 Python
python版DDOS攻击脚本
Jun 12 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 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代码(星期六,星期日总和)
2009/11/12 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
2011/05/28 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
详解A标签中href=""的几种用法
2017/08/20 Javascript
关于element-ui的隐藏组件el-scrollbar的使用
2019/05/29 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
python基础教程之while循环
2019/08/14 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
爱心募捐通知范文
2015/04/27 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
Node.js实现断点续传
2021/06/23 Javascript
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
使用CSS实现音波加载效果
2023/05/07 HTML / CSS