Package pypat :: Package behavioral :: Module iterator
[hide private]
[frames] | no frames]

Source Code for Module pypat.behavioral.iterator

 1  from abc import ABCMeta, abstractmethod 
2 3 4 -class Iterator(object):
5 """ 6 An Iterator class for the Iterator design pattern. 7 8 - External Usage documentation: U{https://github.com/tylerlaberge/PyPatterns/wiki/Behavioral-Pattern-Usage} 9 - External Iterator Pattern documentation: U{https://en.wikipedia.org/wiki/Iterator_pattern} 10 """
11 - def __init__(self, iterable):
12 """ 13 Initialize a new Iterator instance. 14 15 @param iterable: An Iterable object to iterate over. 16 @type iterable: Iterable 17 """ 18 self.iterable = iterable
19
20 - def __iter__(self):
21 return self
22
23 - def __next__(self):
24 return self.iterable.__next__()
25
26 27 -class Iterable(object, metaclass=ABCMeta):
28 """ 29 An abstract class representing an Iterable object as part of the Iterator design pattern. 30 31 - External Usage documentation: U{https://github.com/tylerlaberge/PyPatterns/wiki/Behavioral-Pattern-Usage} 32 - External Iterator Pattern documentation: U{https://en.wikipedia.org/wiki/Iterator_pattern} 33 """ 34 @abstractmethod
35 - def __next__(self):
36 """ 37 All Iterable's must implement a __next__ method which eventually raises StopIteration. 38 """ 39 pass
40