迭代器、可迭代对象及面向对象基础

列表推导式

  • 列表推导式可以通过一行简单的代码从一个旧列表中快速创建一个符合用户需求的新列表,旧列表可以是已有的列表,也可以是range函数创建的列表,语法如下:
  • [表达式 for 变量 in 旧列表 条件]
  • 实例:假如我需要创建一个列表,列表中的元素为0-100之间能够被3整除的数,思路:根据需求,这里的条件应该为被3整除即变量%3==0,0-100之间的数可以得出旧的列表可以通过range(0,101)来创建,具体代码如下:在这里插入图片描述
  • 如图所示,使用列表推导式,可以通过一行简单的代码实现筛选列表的功能
  • 除此之外,列表推导式也是创建生成器的一种方式,这点会在后面具体说明

迭代器

迭代的概念

  • 迭代(Iteration)是动词,指通过遍历获取容器内所有元素,特指遍历获取这个动作

可迭代对象的概念

  • 可迭代对象(Iterable object)顾名思义是指某容器可以被遍历获取内部所有元素,特指有这个特性的对象,该对象有_iter_、_getitem_方法,没有_next_方法
  • 可迭代对象有:字符串、元组、列表、字典、集合等

迭代器的概念

  • 迭代器(Iterator)特指某种特殊的容器,该容器内的元素可以通过next获取
  • 迭代器有_iter_、_next_方法,没有_getitem_方法
  • 迭代器常见的有文件句柄以及通过iter()转换的对象和迭代器生成式生成的对象等。

迭代器和可迭代对象的区别

  • 通过上面的概念,可以看出迭代器和可迭代对象有以下区别:
    • 相同点:
      • 迭代器和可迭代对象都有_iter_方法,说明俩者都是可迭代的,即都拥有可以被获取内部所有元素的特质,这里通过isinstance函数证明 在这里插入图片描述
    • 不同点:
      • 迭代器只有_next_方法,可迭代对象只有_getitem_方法,说明虽然俩者都能被获取内部元素,但获取的方式不同,可迭代对象可以通过遍历的方式一次获取所有的元素,但不能通过next的方式一次获取一个元素,而迭代器刚好相反,只能通过next的方式一次一次的获取元素 在这里插入图片描述

生成器

  • 生成器是一种特殊的迭代器,生成器自动生成了_iter_和_next_方法
  • 其创建方法有两种:
    • 一种是通过列表推导式生成,语法为用(列表推导式),上图的例子中给出了这种方式
    • 另一种方式是通过定义函数生成,只要函数中出现了yield,这个函数就是生成器 在这里插入图片描述

面向对象

  • 面向对象是一种编程思想,它是针对面向过程提出来的,也是根据面向过程发展而来,从名字就可以看出,面向过程的思想针对主要是过程,关注实现一个功能所需要的的一步一步的过程,而面向对象编程针对的则是对象,即实现一个功能,需要什么对象,每个对象各自有什么属性和功能
  • 面向过程的编程方式更符合解决一个问题的流程,易于编程,但是难于修改,而面向对象的编程方式虽然编程过程不符合正常流程,但是易于修改和拓展,对于需要改变规则或者增加新需求非常方便,故而成为一种主流的编程思想

类基础

  • 类其实也是一个对象,是一个可以用来创建对象的对象
  • 类是type类型的对象,定义了类其实就是定义了一个type类型的对象在这里插入图片描述
  • 简单理解类其实就是一个图纸,我们需要根据类来创建对象,即通过面向对象的编程思想,创建符合需求的类,再去创建对象
  • 在开发的时候如果我们只用Python提供的对象是不能够满足我们的需求的,这个时候要自定义对象
  • 我们也称对象是类的实例(instance)
  • 上图已经给出了一个创建类的简单实例,下面我们尝试对于我们创建的类对象可以进行什么操作
    • 首选可以通过类来创建对象在这里插入图片描述

    • 其次可以赋给创建的对象以相应的属性,语法为对象.属性名=属性值在这里插入图片描述

    • 还可以通过创建类的时候定义共同属性,定义了共同属性之后,每个根据这个类创建的对象都拥有这个属性 在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值