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

网站跳转qq链接怎么做的软件开发好学吗

网站跳转qq链接怎么做的,软件开发好学吗,163企业邮箱登陆入口,网站设计风格及特点结论 凡是实现了__iter__() 方法的类都称之为可迭代对象#xff0c;但 __iter__() 方法的返回值只能是迭代器和生成器for 循环的本质是先调用 __iter__() 方法#xff0c;然后不断调用返回值的 __next__() 方法#xff0c;直至报出异常 StopIteration#xff0c;可迭代对象…结论 凡是实现了__iter__() 方法的类都称之为可迭代对象但 __iter__() 方法的返回值只能是迭代器和生成器for 循环的本质是先调用 __iter__() 方法然后不断调用返回值的 __next__() 方法直至报出异常 StopIteration可迭代对象的返回值一定是迭代器或生成器而迭代器和生成器内部都具有 __next__() 方法所以可迭代对象一定可以用于 for 循环凡是实现了 __iter__() 方法和 __next__() 方法的类都称之为迭代器凡是包含 yield 的函数都会自动生成一个同名的包含 __iter__() 方法和 __next__() 方法的类这个类称之为生成器所以生成器是一个特殊的迭代器在类中只要实现了 __getitem__()则会自动生成 __iter__() 方法所以凡是实现了__getitem__()方法的类也都称之为可迭代对象可迭代对象不一定是迭代器但迭代器一定是可迭代对象 案例 1 凡是实现了__iter__() 方法的类都称之为可迭代对象凡是实现了 __iter__() 方法和 __next__() 方法的类都称之为迭代器 from collections.abc import Iterator# 定义一个可迭代对象同时也是迭代器 class MyClass1():def __init__(self, max_num):self.current 0self.max_num max_numdef __iter__(self): # 实现了__iter__()方法并不报错的类就是可迭代对象对返回值类型有要求否则报错return self # 并不要求必须返回self只要是迭代器、生成器就可以self本身是迭代器def __next__(self): # 同时实现了__iter__()和__next__()的类就是迭代器if self.current self.max_num:val self.currentself.current 1return valelse:raise StopIteration # __next__()方法中要求有StopIteration, 否则无法终止但不是必须for value in MyClass1(3): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) print(iter(MyClass1(3))) # iter(Myclass1(3))等效于Myclass1(3).__iter__() print(isinstance(MyClass1(3), Iterator))0 1 2 # 可用for循环, 只要是可迭代对象都可以用for循环 __main__.Myclass1 object at 0x79a05a1c7fd0 # 说明是可迭代对象, 如果不是可迭代对象会报错 True # 说明是迭代器 # 定义一个可迭代对象同时也是迭代器 class MyClass2():def __init__(self, max_num):self.current 0self.max_num max_numdef __iter__(self): # 实现了__iter__()方法并不报错的类就是可迭代对象对返回值类型有要求否则报错return iter([3, 4, 5]) # 并不要求必须返回self只要是迭代器、生成器就可以iter(List)中包含__next__()方法def __next__(self): # 同时实现了__iter__()和__next__()的类就是迭代器if self.current self.max_num:val self.currentself.current 1return valelse:raise StopIteration # __next__()方法中要求有StopIteration, 否则无法终止但不是必须for value in MyClass2(3): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) object2 MyClass2(3) for _ in range(3): print(next(object2)) # next(object2)等效于object2.__next__() print(iter(MyClass2(3))) # iter(Myclass2(3))等效于Myclass2(3).__iter()__ print(isinstance(MyClass2(3), Iterator))3 4 5 # 可用for循环, 但for循环与自身的__next__()无关, 调用的是返回值的__next__() 0 1 2 # 自身的__next__()方法可以直接被调用, 超出取值范围会报出异常StopIteration list_iterator object at 0x7a2e7013bd90 # 说明是可迭代对象, 如果不是可迭代对象会报错 True # 说明是迭代器案例 2 凡是实现了__iter__() 方法的类都称之为可迭代对象 from collections.abc import Iterator# 定义一个可迭代对象但不是迭代器 class MyClass3():def __iter__(self): # 实现了__iter__()方法并不报错的类就是可迭代对象对返回值类型有要求否则报错return iter([0, 1, 2]) # 并不要求必须返回self只要是迭代器、生成器就可以iter(List)中包含__next__()方法for value in MyClass3(): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) print(iter(MyClass3())) # iter(Myclass3())等效于Myclass3().__iter()__ print(isinstance(MyClass3(), Iterator)) # 类中没有实现自己的__next__()所以不是迭代器但能用在for循环的原因是调用了List的__next__()0 1 2 # 可用for循环, 只要是可迭代对象都可以用for循环 list_iterator object at 0x7a2e7013bd90 # 说明是可迭代对象, 如果不是可迭代对象会报错 False # 说明不是迭代器, 没有实现自己的__next__()方法案例 3 在类中只要实现了 __getitem__()则会自动生成 __iter__() 方法所以凡是实现了__getitem__()方法的类也都称之为可迭代对象 from collections.abc import Iterator# 定义一个可迭代对象但不是迭代器 class MyClass4():def __init__(self):self.data [0, 1, 2]def __getitem__(self, index): # __getitem__()方法会自动实现__iter__()方法但不会自动实现__next__()方法return self.data[index]for value in MyClass4(): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) print(iter(MyClass4())) # iter(Myclass4())等效于Myclass4().__iter()__ print(isinstance(MyClass4(), Iterator)) # 类中没有实现自己的__next__()所以不是迭代器但能用在for循环的原因是调用了List的__next__()0 1 2 # 可用for循环, 调用的是返回值的__next__(), 返回值是iter(self.data) iterator object at 0x7172911bbd30 # 说明是可迭代对象, 如果不是可迭代对象会报错 False # 说明不是迭代器, 没有实现自己的__next__()方法案例 4 凡是包含 yield 的函数都会自动生成一个同名的包含 __iter__() 方法和 __next__() 方法的类这个类称之为生成器所以生成器是一个特殊的迭代器 from collections.abc import Iterator# 定义一个可迭代对象但不是迭代器 class MyClass5():def __init__(self):self.data [0, 1, 2]def __iter__(self): # 实现了__iter__()方法并不报错的类就是可迭代对象对返回值类型有要求否则报错for i in range(len(self.data)): # 并不要求必须返回self只要是迭代器、生成器就可以包含yield返回生成器yield self.data[i] # 不需要加异常StopIterationfor value in MyClass5(): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) print(iter(MyClass5())) # iter(Myclass5())等效于Myclass5().__iter()__ print(isinstance(MyClass5(), Iterator)) # 没有自己的__next__()所以不是迭代器 print(isinstance(iter(MyClass5()), Iterator)) # __iter__()返回值是一个生成器生成器内部会自动实现自己的__iter__()方法和__next__()方法详见下面fib()0 1 2 # 可用for循环, 只要是可迭代对象都可以用for循环 generator object MyClass5.__iter__ at 0x7a2e701e2350 # __iter__()方法返回的是生成器, 说明是可迭代对象, 如果不是可迭代对象会报错 False # 说明不是迭代器, 但可以用for循环的原因是, 返回的生成器内部自动实现自己的__iter__()方法和__next__()方法 True # 包含yield语句的__iter__(self)自动生成一个生成器, 生成器也是一个类, 注意这个类是MyClass5内部的一个类 # 定义一个可迭代对象同时也是迭代器 def fib(end1000): # 自动构建一个名为fid的类并自动构建__iter__()方法和__next__()方法使之成为可迭代对象和迭代器prev, curr 0, 1while curr end:yield curr # 不需要加异常StopIterationprev, currcurr, currprevfor value in fib(): # for循环的本质是先调用__iter__()然后不断调用返回值的__next__()直至报出异常StopIterationprint(value) object_fib fib() for _ in range(3): # 能用for循环因为生成器自动构建__iter__()方法和__next__()print(next(object_fib)) # next(object_fib)等效于object_fib.__next__() print(iter(fib())) # iter(fib())等效于fib().__iter()__ print(isinstance(fib(), Iterator)) # 是迭代器原因是生成器自动构建__iter__()方法和__next__()1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 # 说明生成器会自动构建__iter__()方法和__next__()方法 1 1 2 # 说明生成器会自动构建__next__()方法 generator object fib at 0x7a2e701e2350 # __iter__()方法返回的是生成器, 说明是可迭代对象, 如果不是可迭代对象会报错 True # 是迭代器, 生成器是一个特殊的迭代器
http://www.w-s-a.com/news/354813/

相关文章:

  • 上海网站建设集中公关公司组织架构图
  • wordpress副标题的作用百度网站标题优化
  • 大连哪家公司做网站比较好wordpress 判断用户组
  • 网站空间1g多少钱东莞公司高端网站建设
  • 网站服务器出错是什么意思做餐饮酒店网站
  • 房地产网站建设策划方案网站建设教程简笔画
  • 3d室内设计软件wordpress本地优化加速版
  • 南京高新区规划建设局网站石家庄哪里做网站比较好
  • 免费培训课程网站优化的方式
  • 做网站要固定电话在家自己做网站
  • 招聘网站开发视频新手如何做网站维护
  • flash 网站欣赏国外做的比较好的网站有哪些
  • 推广一个网站需要什么官网首页设计
  • 淘宝建设网站的理由企业官网建设哪家好
  • 青岛网站推wordpress主题切换
  • 天元建设集团有限公司资质郑州网站seo推广
  • 免费网站后台管理系统模板下载百度网盘app下载安装
  • 开封网站建设培训郑州高端网站建设哪家好
  • 东莞哪家做网站很有名的公司即墨专业医院网站制作公司
  • 做面食网站china cd wordpress
  • 门户网站 营销优秀建筑模型案例作品
  • 训做网站的心得体会范文中山市 有限公司网站建设
  • 服装电子商务网站建设过程与实现两学一做学习教育网站
  • 住房和城建设网站怎么用源码建站
  • 监理工程师证查询网站百度关键词优化软件网站
  • 关于建筑建设的网站asp网站建设报告书
  • 服务二级公司网站建设平台销售模式有哪些
  • 南昌县建设局网站微信分销小程序开发
  • 网站设计师需要什么知识与技能wordpress个性
  • 做茶叶网站的目的和规划有什么做照片书的网站