一、迭代器
在原来的基础上,产生一个新的版本。
for temp in 100:
print(temp)
int不是一个可以迭代类型。
from collections import Iterable
判断是否迭代,只要判断是否是Iterable的一个子类即可。
用isinstance判断。
isinstance(a,A) 返回值是true,表示a对象是由A类创建出来的。例如:
isinstance([11,22,33],Iterable) 返回True。表示[11,22,33]可以迭代。
isinstance("abc",Iterable) 返回True。表示"abc"可以迭代。
isinstance(100,Iterable) 返回False。表示100不可迭代。
from collections import Iterable
class Classmate(object): def __init__(self): self.names = list() def add(self,name): self.names.append(name)
def __iter__(self):
"""如果想要一个对象称为一个 可以迭代的对象,即可以使用for,那么必须实现__iter__方法"""
return ClassIterator()
class ClassIterator(object):
def __iter__(self):
pass
def __next__(self):
pass classmate = Classmate() classmate.add("老王") classmate.add("王二") classmate.add("张三")
print("判断classmate是否是可以迭代的对象:",isinstance(classmate,Iterable)) for name in classmate: print(names)
for temp in xxx_obj:
pass
1、判断xxxx_obj是否是可以迭代。
2、在第一步成立的前提下,调用iter函数得到xxxx_obj对象的__iter__方法的返回值。
3、__iter__方法的返回值是一个迭代器。