【Python零基础入门篇 · 30】:自定义迭代器类、异常类、生成器

简介: 【Python零基础入门篇 · 30】:自定义迭代器类、异常类、生成器

自定义迭代器


自定义迭代器类的条件


  • iter方法:返回迭代器对象本身


  • next方法:返回容器下一个元素或可抛出StopIteration异常




举例一

ca6af5c63513444eacc554c99b306698.png


以上代码可改写为

a284898516744495aef0cb08463454ca.png


举例二

fadcdd694a594ce59b52108c59eafb7c.png

举例三

47caf3579411421083fb764de35f7916.png



异常类


自定义异常类,需要继承Exception类。只要是定义的类继承自Exception,这个类就是一个异常类。

举例一

bda5b92eea424aa389e957ddb47966c8.png


举例二


47fe884390264341af80aa221550bda1.png




生成器


生成器:python提供的一种非常见简便的语法能让我们来自己写出迭代器

只要再def中有yield关键字的就称为生成器


生成器就是一个迭代器

定义方式:类似于列表推导式,把列表推导式的[]改为()




967dc3d62cef4bc495ac3bcf07d12a1d.png



生成器函数

生成器函数:python中,使用了yield的函数成为生成器(generator)

  • 普通函数:返回值用return,生成器函数使用yield语句
  • yield语句一次返回一个结果,在每个结果中间,挂起函数,以使下一次从它离开的地方继续执行
  • yield效果使函数中断。并保存中断状态


d893a24f959c469fb073e4cbf5b29727.png


以上代码可改写为

e510d355dbe146e58dab4809b4f9a612.png


举例:处理文件

处理文件:用户指定要查找的文件和内容,将文件中要查的内容的每一行都打印出来。


步骤


  1. 写一个函数,参数是文件和内容


  1. 文件操作——open()函数


  1. 查找内容


  1. 找到后输出



具体实现

  • 在F盘中创建一个记事本文件并写上内容

74fdf4c925a149418b7ba0083bc84f1f.png


045f32a2861e4dc6a864d3f12f51805f.png

相关文章
|
6天前
|
存储 JSON API
如何自定义Python环境变量?
如何自定义Python环境变量?
18 3
|
26天前
|
存储 索引 Python
|
27天前
|
Python
Python生成器、装饰器、异常
【10月更文挑战第15天】
|
1月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
17 1
|
1月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
21 2
|
16天前
|
存储 程序员 数据处理
深入理解Python中的生成器与迭代器###
本文将探讨Python中生成器与迭代器的核心概念,通过对比分析二者的异同,结合具体代码示例,揭示它们在提高程序效率、优化内存使用方面的独特优势。生成器作为迭代器的一种特殊形式,其惰性求值的特性使其在处理大数据流时表现尤为出色。掌握生成器与迭代器的灵活运用,对于提升Python编程技能及解决复杂问题具有重要意义。 ###
WK
|
1月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
13 0
|
11月前
|
Python
跟我从0学Python——类的继承和多态
类的继承和多态 —— 面向对象编程的扩展与灵活性
|
6月前
|
搜索推荐 Python
Python学习 -- 类的继承
Python学习 -- 类的继承
45 0
|
11月前
|
Kotlin Python
Python(三十一)python类class继承与多态
Python是一门面向对象语言 面向对象的三大特征:封装、继承、多态 我们这里来看一下python 类的继承 通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。 一:类的继承 1 :继承语法 arduino 复制代码 class 派生类名(基类名) ... 通常我们定义的类没有指定继承对象都是继承自object类,另外,python是支持多继承的。 下边我们使用代码来演示一下python的继承: 我们定义一个person类,其中有name、age两个属性,getInfo方法,为父类。 我们定义一个school类,其中getSchoolInfo方法,为父类。 定义一
59 0