首页 > 其他分享 >生成器,迭代器

生成器,迭代器

时间:2023-03-09 19:33:06浏览次数:39  
标签:__ 迭代 对象 生成器 yield 异常

迭代器

迭代器分为迭代器对象和可迭代对象,迭代就是每一次的结果都必须依赖于上一次的结果,能够通过for循环进行迭代操作,也能够通过__next__方法进行迭代操作

可迭代对象

内置有__iter__方法的对象都是可迭代对象(内置的意思是python自带的,解释器中已经存在的,外面可以直接使用的

可迭代对象有哪些:

1.所有序列类型:如list,str和tuple

2.非序列类型:dict,set,文件对象

3.实现__iter__()方法的任意对象

 

迭代器

迭代器对象:

1.实现了迭代器协议的对象,就是一个迭代器(就是一个对象需要提供next方法,该方法要么返回迭代对象中的下一项,要么就抛出Stoplteration异常,迭代终止)

2. 所有的可迭代对象,都可以通过内置函数iter()转换为迭代器

3.迭代器对象能够通过内置函数next进行迭代操作

 

 

注意:
迭代给我们提供了一种不依赖索引取值的方法

生成器

什么是生成器,就是在定义函数的时候,函数内部有yield关键字就是生成器,但是在没调用之前它就是一个普通的函数,调用后才变成生成器

 

yield传值

 

 

yield和return的对比

yield:

1.可以有返回值

2.函数遇到yield不会结束,只会暂停,等待下一次运行时从暂停处继续往下执行

3.yield关键字会把函数变成生成器,支持迭代取值

return:

1.可以有返回值

2.遇到return关键字直接结束函数运行

 

for循环内部原理

for循环内部就是由__iter__和__next__组成,只是pycharm软件帮我们处理了

 

 在一些不能或不方便使用for循环的情况下,就可以用__iter__和__next__来取值,不过要自己做好异常处理措施,异常处理措施和怎么如何扑捉异常如下

 

扑捉异常

什么是异常

就是错误发生时发出的信号,如果信号不处理,后续的代码就不能正常执行

 

异常的种类

1,语法错误:这是不被允许的,如果出现要立即改正,不然代码不能正常运行

2,逻辑错误:是可以允许的,但是我们写逻辑的时候一定要尽量避免逻辑错误

 

如何扑捉异常

可以把书写的代码监测起来;但是,监测的代码越少越好

 

 

万能异常

如果不用万能异常,此段代码就会因为迭代原因报错,影响后续的代码的运行,使用万能异常后,不会报错,代码正常运行

 

 

 

 

 

 

标签:__,迭代,对象,生成器,yield,异常
From: https://www.cnblogs.com/h-220413/p/17196284.html

相关文章

  • 狗屁不通文章生成器在线网页版 (2023年最新)
    今天给大家分享一个在线小工具:狗屁不通文章生成器,顾名思义,使用这个小工具可快速生成一篇狗屁不通的文章,默认是生成6000字,还挺有意思的。一、先看效果只需在输入框里面......
  • python 生成器
    生成器生成器是用来生成数据的一个办法yield关键字yield相当于是return,当函数运行到这里之后会暂停,并且返回后面的变量给调用的位置yield是没有返回值的,所以num=yie......
  • for循环原理补充、生成器对象、yield冷门用法、生成器表达式的面试题、常见内置函数
    目录一、for循环原理补充二、生成器对象(1)、自定义生成器对标range功能(一个参数两个参数三个参数迭代器对象)三、yield冷门用法(1)、yield与return的对比四、生成器表......
  • Leetcode69(牛顿迭代)
    给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。注意:不允许使用任何内置指数函数和算符,例如 ......
  • 生成器
    生成器是迭代器的一种面试小重点:""""函数中如果存在yield关键字,在调用函数之前,还是一个普通函数,一旦调用函数,就把函数变成了生成器(迭代器)****************生成器一......
  • 迭代器
    内置有__iter__方法的对象都是可迭代对象'''内置的意思是python自带的,解释器中已经存在的,我们可以直接使用的'''目前所学的数据类型#目前我所学的数据类型中,有哪些是可......
  • MP 代码生成器工具类
    Mybatis-Plus代码生成器工具类对MP的代码生成器写一个简单的工具类:publicclassMain{publicstaticStringscanner(Stringtip){Scannerscanner=......
  • 日报周报月报工作总结生成器「智能文案生成器」
    ​在职场上,尤其是互联网公司里,“写周报”是一件麻烦的事情。理想的工作环境下,写周报能让工作内容透明化,并有助于总结工作经验和办事方法。但现实情况往往没那么理想。......
  • EF7数据库提供者的自定义值生成器
    本文将讲解提供者使用值生成器的原理。因代码太多,本文只摘要重要代码,并且删除了代码中的注释。如果您不了解,如何使用EF的值生成器?见这篇文章:《EF7创建模型值生成篇》?SqlS......
  • Python 异步: 异步迭代器(15)
    动动发财的小手,点个赞吧!迭代是Python中的基本操作。我们可以迭代列表、字符串和所有其他结构。Asyncio允许我们开发异步迭代器。我们可以通过定义一个实现aiter()和......