自定义迭代器类
自定义迭代器类的条件
- iter方法:返回迭代器对象本身
- next方法:返回容器下一个元素或可抛出StopIteration异常
举例一
以上代码可改写为
举例二
举例三
异常类
自定义异常类,需要继承Exception类。只要是定义的类继承自Exception,这个类就是一个异常类。
举例一
举例二
生成器
生成器:python提供的一种非常见简便的语法能让我们来自己写出迭代器
只要再def中有yield关键字的就称为生成器
生成器就是一个迭代器
定义方式:类似于列表推导式,把列表推导式的[]改为()
生成器函数
生成器函数:python中,使用了yield的函数成为生成器(generator)
- 普通函数:返回值用return,生成器函数使用yield语句
- yield语句一次返回一个结果,在每个结果中间,挂起函数,以使下一次从它离开的地方继续执行
- yield效果使函数中断。并保存中断状态
以上代码可改写为
举例:处理文件
处理文件:用户指定要查找的文件和内容,将文件中要查的内容的每一行都打印出来。
步骤:
- 写一个函数,参数是文件和内容
- 文件操作——open()函数
- 查找内容
- 找到后输出
具体实现:
- 在F盘中创建一个记事本文件并写上内容