当前位置: 首页 > 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.zqtcl.cn/news/824934/

相关文章:

  • 大朗网站制作商城网站建设相关费用
  • 付费阅读网站代码搜索引擎推广方式有哪些
  • 企业网站搭建介绍一个电影的网站模板下载
  • wordpress网站插件下载郑州专业网站制作
  • 佛山南海区建网站的公司dw怎么做购物网站
  • 杭州网站关键词排名优化响应式网站好还是自适应网站好
  • 潍坊作风建设网站什么是网站建设技术
  • 网站后台图片不显示东莞市企业招聘信息网
  • 网站发布平台商业网站的网址
  • 免费的培训网站建设门户网站建设管理工作方案
  • 企业网站建设实验感想企业网络推广哪家公司好
  • 网站建设和维护视频如何入侵网站服务器
  • 怎样建设网站空间成都网站设公司
  • 百度文库账号登录入口百度seo规则最新
  • 服务器可以自己的网站吗网络营销策划与创意
  • 广州市招投标网站个人网站可以做论坛
  • 易语言做购物网站春节网站怎么做
  • 建公司网站设计网站公司做网上夫妻去哪个网站
  • 稷山网站建设wordpress单本小说采集
  • 凡客网站规划与建设ppt网站做跳转教程
  • 怎么看网站空间多大做网站旅游销售
  • 天津做手机网站建设旅游网站的目的
  • 飞机查询网站开发的创新点注册公司流程和费用大概多少钱
  • 高质量的邯郸网站建设厦门网页制作厦门小程序app
  • 建设企业网站企业网上银行官网官方二建证从住房建设厅网站调出流程
  • 网站开发和网站建设网页出现网站维护
  • 推广网站的方法电影网站建设教程
  • 哪些网站可以做相册视频成都企业网站公司
  • wordpress网站统计插件常见的管理信息系统有哪些
  • wordpress多个导航菜单seo引流软件