每次去看别人写的代码都有个yield,感觉超级geek,今天花点儿时间整理下。
按照顺序来:
1. iterator
iterator叫做迭代器,用来遍历可以序列化的数据,比如一个list,set 等,当然如果对象想要能够使用迭代器来遍历,只要在该对象的类中添加__iter__()方法,该方法返回一个迭代器对象,迭代器对象中需要实现next()方法,例子如下:
>>> class sequenceClass(object):
... def __init__(self, *args):
... self._data = list(args)
... def __iter__(self):
... return DataIter(self)
...
>>> class DataIter(object):
... def __init__(self, data):
... self._index = 0
... self._data = data._data
... def next(self):
... if self._index >= len(self._data): raise StopIteration()
... d = self._data[self._index]
... self._index += 1
... return d
...
>>> data = sequenceClass(1,2,3,4)
>>>