首先介绍一个命令,判断数据类型是否是迭代类型:
使用的命令
from collections import Iterable
'''导入数据库'''
isinstance(123,Iterable)
'''判断123是否是可迭代类型,如果是返回True,如果不是则为False
要想让一个迭代器工作,至少要实现iter方法和next方法,Python中关于迭代有两个概念,第一个是Iterable,第二个是Iterator,协议规定Iterable的iter方法会返回一个Iterator, Iterator的next方法(Python 2里是next)会返回下一个迭代对象,如果迭代结束则抛出StopIteration异常。
class Mylist(object):
def __init__(self):
#初始化,定义属性为空列表
self.iter=[]
def add(self,data1):
#添加方法
self.iter.append(data1)
def __iter__:
#生成迭代器,
myiter=MyIter(self.iter)
return myiter
class MyIter(object)
def __init__(self,data_2):
self.data_2=data_2
self.current_index=0
def __next__(self):
if self.current_index<len(self.data_2)
self.current_index+=1
return self.data[self.current_index-1]
else:
raise StopIteration
def __iter__(self):
return self