当前位置: 首页 > news >正文

东莞网站建设怎么收费今天的新闻联播

东莞网站建设怎么收费,今天的新闻联播,注册深圳公司需要什么资料,深圳大型网站建设公司23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…

23种计模式之 前言 +(5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、+(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、+(11)策略模式、责任链模式、命令模式、中介者模式、模板模式、迭代器模式、访问者模式、观察者模式、解释器模式、备忘录模式、状态模式 + 设计原则

17-Python与设计模式–迭代器模式

一、迭代器与生成器

今天的主角是迭代器模式。在python中,迭代器并不用举太多的例子,因为python中的迭代器应用实在太多了
(不管是python还是其它很多的编程语言中,实际上迭代器都已经纳入到了常用的库或者包中)。
而且在当前,也几乎没有人专门去开发一个迭代器,而是直接去使用list、string、setdict等
python可迭代对象,或者直接使用__iter__和next函数来实现迭代器。

如下例:

if __name__=="__main__":lst=["hello Alice","hello Bob","hello Eve"]lst_iter=iter(lst)print lst_iterprint lst_iter.next()print lst_iter.next()print lst_iter.next()print lst_iter.next()

打印如下:

hello Alice hello Bob hello Eve Traceback (most recent call last):
File “D:/WorkSpace/Project/PyDesignMode/example.py”, line 719, in
print lst_iter.next() StopIteration

在这种迭代器的使用过程中,如果next超过了迭代范围,会抛出异常。
在python对象的方法中,也可以轻易使用迭代器模式构造可迭代对象,
如下例:

class MyIter(object):def __init__(self, n):self.index = 0self.n = ndef __iter__(self):return selfdef next(self):if self.index < self.n:value = self.index**2self.index += 1return valueelse:raise StopIteration()

__iter__和next实现了迭代器最基本的方法。如下方式进行调用:

if __name__=="__main__":x_square=MyIter(10)for x in x_square:print x

打印如下:

0 1 4 9 16 25 36 49 64 81

注意__iter__方法中的返回值,由于直接返回了self,因而该迭代器是无法重复迭代的,
如以下业务场景:

if __name__=="__main__":x_square=MyIter(10)for x in x_square:print xfor x in x_square:print x

只能打印一遍平方值。解决办法是,在__iter__中不返回实例,而再返回一个对象,写成:

def __iter__(self):return MyIter(self.n)

这样,在每次迭代时都可以将迭代器“初始化”,就可以多次迭代了。
另外,在python中,使用生成器可以很方便的支持迭代器协议。生成器通过生成器函数产生,
生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果,
在每个结果之间挂起和继续它们的状态,来自动实现迭代协议。

如下例:

def MyGenerater(n):index=0while index<n:yield index**2index+=1

注意,这是个函数。在每次调用生成器,得到返回结果后,现场得以保留,下次再调用该生 成器时,返回保留的现场从yield后继续执行程序。

if __name__=="__main__":x_square=MyGenerater(10)for x in x_square:print x

二、迭代器模式

迭代器模式的定义如下:它提供一种方法,访问一个容器对象中各个元素,而又不需要暴露对象的内部细节。
http://www.wangmingla.cn/news/78075.html

相关文章:

  • php给一个网站做后台做专业搜索引擎优化
  • 长春一般建一个网站需要多少钱站长工具国产
  • 网络推广方案的内容长沙seo技术培训
  • 做赛事预测网站双桥seo排名优化培训
  • 海南黄页电话号码关键词首页排名优化平台
  • 网站内容采编怎么做百度精准推广
  • 网站开发阶段怎么做测试企业seo优化
  • 邵阳整站优化关键词怎么找出来
  • 辽阳网站建设会计培训班哪个机构比较好
  • 网络商城营业执照经营范围长春关键词优化排名
  • 深圳装修公司大全seo优化是做什么的
  • 中小学学校网站建设关键词简谱
  • 如何做 行业社交类网站高质量外链平台
  • 企业网站推广毕业论文答辩甘肃seo技术
  • 云教育科技网站建设怎么推广一个平台
  • 山东建设银行招聘网站国际最新新闻热点事件
  • 网站主机免备案aso优化排名
  • 阿里云服务器上做网站seo搜狗
  • 西安品牌网站建设服务商四年级写一小段新闻
  • 网站建设的经验做法国际新闻最新消息十条摘抄
  • 湖北网站建设的释义网站建设seo
  • 网站虚拟主机租用百度广告联盟下载
  • 宜昌哪有有做网站的百度竞价排名利弊
  • 公司想做个网站应该怎么做世界新闻最新消息
  • 做电影下载网站需要什么软件网站排名首页
  • 建设工程信息哪个网站有详细信息推广网络营销外包公司
  • 做直播网站前端互联网营销师含金量
  • 东莞做网站 9353chatgpt网页
  • 网站网页设计的意义搜索引擎优化网站的网址
  • 校园文化建设相关网站seo搜索是什么意思