【Python】在Python中自定义迭代器Iterator

Python中迭代器本质上是每次调用.next()都返回一个元素或抛出StopIteration的容器对象。
在Python中其实没有“迭代器”这个类,具有以下2个特性的类都可以被称为“迭代器”类:
1、有next方法,返回容器的下一个元素或抛出StopIteration异常;
2、有__iter__方法,返回迭代器本身;

自定义迭代器的例子(来自《Expert Python Programming(Python高级编程)》)

 python2.x版本:

class MyIterator(object):
	def __init__(self, step):
		self.step = step
	def next(self):
		"""Returns the next element."""
		if self.step == 0:
			raise StopIterator
		self.step -= 1
		return self.step
	def __iter__(self):
		"""Returns the iterator itself."""
		return self


 

 

 

你可能感兴趣的:(【Python】在Python中自定义迭代器Iterator)