Python学习之旅(核心编程基础篇011迭代器、生成器、面向对象)

Python学习之旅2021.01.08

指导教师:逻辑教育讲师Amy

一、迭代器

  • 1.可迭代对象
    • 可以用for循环遍历的对象都是可迭代的对象,如strlisttupledictset
    • generator(生成器和yield生成器函数)是可迭代对象
  • 2.判断是否为可迭代对象
    • 查看是否有__iter__方法(ctrl+鼠标左键)
    • isinstance(object,Iterable),需导入collectionsIterable内置模块
      在这里插入图片描述
  • 3.迭代器介绍:
    • 迭代器是一种迭代取值工具,迭代取值是一个重复过程,每一次重复都基于上一次的结果,是一种通用的不依赖索引的取值方式。for循环是一种迭代器
  • 4迭代器内置方法
    • 一个可以被next()调用,并不断返回下一个值的对象,属于迭代器。next()不能超出迭代器范围,否则报错,并且只能顺序调用,不能逆序。通常用for循环调用
    • 通过iter()方法可将可迭代对象转为迭代器
    • 判断是否为迭代器(可迭代对象不一定是迭代器)
      • 查看是否有__itre____next__方法
      • isinstance(object,Iterator),需导入collectionsIterator内置模块
        在这里插入图片描述
        在这里插入图片描述
  • 5.可迭代对象与迭代器区别
    • 可用于for循环的都是可迭代对象
    • 作用于next()方法的都是迭代器
    • listdictstr等都是可迭代对象,但不是迭代器,因为他们没有next()方法,可通过iter()方法将他们转为迭代器
    • Python中for循环本质是不断通过调用next()实现

二、生成器.

  • 1.生成器定义:一边循环一边计算的机制,称为生成器generator。生成器在循环过程中根据算法不断推出后续元素,这样就不用创建整个完整列表,从而节省大量空间。迭代器能做的,生成器都能做。
  • 2.如何创建生成器
    • 生成器表达式:(ele_exp for element in iterable)源于迭代和列表推导组合。使用小括号()
      在这里插入图片描述
    • 生成器函数
      • 当函数中存在yield关键字,则该函数就是一个generator。调用函数就是创建了一个生成器对象,其原理就是通过调用next()__next__方法,指导捕获异常。yield返回一个值到next(),并记住位置,下次遇到next()时,从该位置开始执行。
        在这里插入图片描述
      • send()方法:和next()一样,都能让生成器继续走,遇到yield()返回,但send()能返回一个值,这个值作为yield表达式整体结果。send()作为启动生成器时,只能以send(None)
        在这里插入图片描述

三、面向对象

  • 1.介绍
    • 能用面向对象思想实现的程序,都能通过面向过程完成。选用时,只看哪种思想更适合开发需求
    • 面向对象是将数据与函数绑定到一起进行封装,减少代码重复。而面向过程根据逻辑从上往下编程
  • 2.类的定义
    • 采用关键字class,通常采用大驼峰方式命名
  • 3.类的对象
    • 创建对象又称为类的实例化
      在这里插入图片描述
  • 4.self参数
    • 定义类的方法时会自动创建,对象调用时无需写入
    • self本身为形参,是指对象本身
  • 5.__init__()方法
    • 称为初始化方法,又称为构造方法,创建对象时会自动执行该方法,为对象属性设置初始值
  • 6.__str__()方法
    • 在开发过程中,希望打印对象变量时,能够打印自定义内容,就可以使用__str__()方法,将自定义内容通过return返回,但返回内容必须为字符串
      在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值