手写一个python迭代器过程详解
作者:三国小梦 发布时间:2021-06-29 07:45:23
标签:手写,python,迭代器
分析
我们都知道一个可迭代对象可以通过iter()可以返回一个迭代器。
如果想要一个对象称为可迭代对象,即可以使用for,那么必须实现__iter __()方法。
在一个类的实例对象想要变成迭代器,就必须实现__iter__()和__next__()方法。
调用iter()时,在对象内部默认调用__iter__(),即__iter__()的返回值应该是一个迭代器。
for的每次循环中或者next()时,都是自动调用迭代器的__next__()方法,并有一个返回值。
实现
class Classmate:
def __init__(self):
self.names = []
self.num = 0
def add(self, name):
self.names.append(name)
def __iter__(self):
return self
def __next__(self):
if self.num < len(self.names):
ret = self.names[self.num]
self.num += 1
return ret
else:
raise StopIteration
c = Classmate()
c.add("张三")
c.add("李四")
c.add("王五")
for i in c:
print(i)
"""
张三
李四
王五
"""
来源:https://www.cnblogs.com/lxy0/p/11411026.html


猜你喜欢
- 1. watch 与 computed 的巧妙结合如上图,一个简单的列表页面。你可能会这么做: created(){ this.
- 为什么要用flash呢?动画流畅,视觉效果好缓存能力强那使用flash有什么问题呢?需要Flash播放器在M$的补丁打遍天下之前IE有那神奇
- 目录HDFS NameNode 高可用Hadoop Namenode 高可用架构Namenode 高可用的实现隔离(Fencing)QJM共
- 追本溯源,从使用开始首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务,这里通过JWT的认证方式
- 绘制双变量联合分布图有时我们不仅需要查看单个变量的分 布,同时也需要查看变量之间的联系, 往往还需要进行预测等。这时就需要用到双变量联合分布
- 在一般问题的优化中,最速下降法和共轭梯度法都是非常有用的经典方法,但最速下降法往往以”之”字形下降,速度较慢,不能很快的达到最优值,共轭梯度
- python中判断文件结束符的方法:可以使用try except语句块来进行判断。具体使用方法:【try:while True:s = in
- python 代码如下:# -*- coding:utf-8 -*-import pandas as pdimport pymysqlimp
- 图像轮廓概念轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连
- 1.Airbus Ship Detection Challengeurl: https://www.kaggle.com/comp
- 本文实例讲述了Yii2框架整合Xunsearch搜索引擎的方法。分享给大家供大家参考,具体如下:公司一直用的YII2框架,然后要做一个中文搜
- 本文实例为大家分享了python实现贪吃蛇的具体代码,供大家参考,具体内容如下import pygameimport sysimport r
- 前言:数据库的操作越来越成为整个应用的性能瓶颈了,这点对于 Web 应用尤其明显。关于数据库的性能,这并不只是 DBA 才需要担心的事,而这
- iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。 1、下载libiconv函数库http://ftp.gnu
- python可以简单优美,也很有趣,下面是收集的例子:1.一句话开始一个http的文件服务器:$ python -m SimpleHTTPS
- 2. 从函数开始2.1. 定义一个函数如下定义了一个求和函数:def add(x, y): return
- 复制代码CREATE FUNCTION fGetStrBySplit ( @Source VARCHAR(max), @Index INT,
- python处理按钮消息的实例详解  
- 使用mysql二进制方式启动连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接m
- 本文介绍了asp中 adpbe.stream 的语法,各种参数使用说明,方便大家查阅。更多请看:VBScript 速查手册(语言参考) ch