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

那里可以免费建网站网站建设公司自贡

那里可以免费建网站,网站建设公司自贡,数字展厅企业展厅,重庆网络推广生成器、迭代器、可迭代对象 生成器 函数体中包含yield关键字的就是生成器 把生成 器传给 next(...) 函数时#xff0c;生成器函数会向前#xff0c;执行函数定义体中的 下一个 yield 语句#xff0c;返回产出的值#xff0c;并在函数定义体的当前位置暂停。等到再次遇到n…生成器、迭代器、可迭代对象 生成器 函数体中包含yield关键字的就是生成器 把生成 器传给 next(...) 函数时生成器函数会向前执行函数定义体中的 下一个 yield 语句返回产出的值并在函数定义体的当前位置暂停。等到再次遇到next才会继续执行。 简单生成器示例 def demo_gen():yield 1yield 2yield 3 gen demo_gen() print(next(gen)) print(next(gen)) print(next(gen)) print(next(gen)) # 当生成器的值取完了在使用next方法会抛出StopIteration错误生成器表达式 生成器表达式是语法糖:完全可以替换成生成器函数不过有时使用生成器表达式更便利。 代码在ipython(安装pip install ipython)运行的 In [1]: (i for i in range(10)) Out[1]: generator object genexpr at 0x107798200类示例代码 class Sentence:简单的生成器使用yield关键字def __init__(self, text):self.text textself.words RE_WORD.findall(self.text)def __iter__(self):for word in self.words:yield word 迭代器 使用while循环模拟迭代器 s ABC it iter(s) while True:try:print(next(it))except StopIteration:del itbreak实现迭代器的必备方法 __next__ 返回下一个可用的元素如果没有元素了抛出StopIteration异常。 __iter__ 返回self以便在应该使用可迭代对象的地方使用迭代器例如for循环中。 实现代码 class IterableDemo:def __init__(self, text):self.text textself.index 0def __iter__(self):return iter(self)def __next__(self):next方法的获取逻辑try:word self.text[self.index]except IndexError:raise StopIterationself.index 1return wordif __name__ __main__:it IterableDemo(Helloworld)print(next(it))print(next(it))print(next(it)) 可迭代对象 可迭代对象是指可以通过__iter__和__getitem__方法访问。 其中__getitem__方法没有办法通过issubclass(Sentence, Iterable)判断。 解释器需要迭代对象x时会自动调用iter(x)。 from collections.abc import Iterableclass Sentence:def __iter__(self):return iter(self)print(issubclass(Sentence, Iterable)) # Trueclass Sentence:def __getitem__(self, index):return self.words[index]print(issubclass(Sentence, Iterable)) # False 实现__getitem__方法 如果只实现了__getitem__方法Python会创建一个迭代器尝试按顺序从索引0开始获取元素。 如果尝试失败会返回C object is not iterableC对象不可迭代其中C对象就是所属的类。 def __getitem__(self, index):return self.words[index]实现__iter__方法 def __iter__(self):return iter(self.words)示例代码 class Sentence:def __init__(self, text):self.text textself.words RE_WORD.findall(self.text)def __iter__(self):return iter(self.words)# def __getitem__(self, index):# return self.words[index]def __len__(self):return len(self.words)def __str__(self):return Sentence(%s) % reprlib.repr(self.words)s Sentence(Hello world how are you) for word in s:print(word)
http://www.pierceye.com/news/824934/

相关文章:

  • 个人可以建网站咨询公司简介
  • 关于网站开发怎么找到做外贸的国内公司
  • 国外优秀摄影作品网站互联网项目推广方案
  • icp网站备案查询美容整形网站建设
  • 广州网站建设八爪鱼湖南网络公司排名
  • 网站公司名称大全龙元建设集团有限公司网站
  • 网站开发技术可行性分析邢台建设企业网站
  • 有一个网站 人物模型可以做各种动作沈阳军成网站建设
  • h5移动网站开发南京企业自助建站系统
  • 开发一个企业网站报价wordpress副标题字数
  • 芜湖哪家公司做网站不错江宁网站建设方案
  • 做网站公司赚钱吗?百度搜索下载
  • 手机购物网站模版企业信息系统查询系统官网江苏
  • 礼品行业网站建设北京网站设计精选刻
  • 六安论坛网站WordPress ftp 媒体库子目录
  • 网站域名com和cn应用商店免费下载
  • 建设营销型网站多少钱比较好的网站建设网站
  • 学校网站的建设需求搜索引擎优化的缺点包括
  • 牛牛襄阳做网站郑州网站建设市场
  • 网站首页的导航栏北京公司注册核名详细流程
  • 专注昆明网站建设有哪些网络营销方式
  • 公司做两个网站网站怎么做本地映射
  • 响应式网站一般做几个尺寸百度联盟怎么做自己的网站
  • 河南做网站的wordpress 幻灯片加数字
  • 东莞网站建设建网站平面设计培训哪个好
  • 网站建设与管理专业是什么办公空间设计案例整套
  • 网站设计网站源码怎么介绍自己的学校
  • 企业网站建设兴田德润很赞运动网站建设主题
  • 沧州自适应网站建设惠安规划局建设局网站
  • 第三方商城网站建设清理wordpress模板