1判断是否可迭代:
from collections import Iterable
判断对象是否可迭代
from collection import Iterable
print(isinstance(123,Iterable))
list()
结果:说明了123为不可迭代对象
下面来进行一个自己写的迭代函数式(不是基层的):
```
class MyList(object):
'''只进行追加操作'''
def __init__(self):
self.iter = []
def add(self,par):
self.iter.append(par)
def __iter__(self):
'''表示对象可迭代'''
myiter = MyIter(self.iter)
return myiter
class MyIter(object):
'''实现迭代器'''
def __init__(self,mylist):
self.mylist = mylist
self.current_index = 0
def __next__(self):
if self.current_index < len(self.mylist):
self.current_index += 1
return self.mylist[self.current_index-1]
else:
raise StopIteration # raise 抛弃异常
def __iter__(self):
return self
mylist = MyList()
for i in range(10):
# print(i)
mylist.add(i)
for i in mylist:
print(i)
“
从上面程序中可以看出:实现了程序的迭代和遍历
再来看下面的程序二:
class MyList(object):
''' 只进行追加操作'''
def __init__(self):
self.iter=[]
def add(self,par):
self.iter.append(par)
mylist=MyList()
for i in range(10):
print (i)
mylist.add(i)
for i in mylist.iter:
print (i)
两个程序结果一样,程序二是经过mylist.iter的iter属性来调用iter这个列表,从而使for迭代成功,如果没有.iter。则会出现
的错误。翻译过来就是:Type错误:“MyList’对象不是迭代的