From a3d3368d9f024052632dc87b5d52e26a223c7869 Mon Sep 17 00:00:00 2001 From: Kyle K Date: Sat, 1 Apr 2017 03:34:41 -0500 Subject: interator / generators exmaples --- iterator.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 iterator.py (limited to 'iterator.py') diff --git a/iterator.py b/iterator.py new file mode 100644 index 0000000..2b1e14e --- /dev/null +++ b/iterator.py @@ -0,0 +1,26 @@ +# this class implements an iterator +# python needs to be told when to stop iterating, this is done by raising StopIteration exception + +class ReverseString(): + def __init__(self, data): + self.data = data + self.index = len(data) + + def __iter__(self): + return self + + def __next__(self): + if self.index == 0: + raise StopIteration + self.index -= 1 + return self.data[self.index] + + +def main(): + foo = ReverseString('foobar') + for c in foo: + print(c) + + +if __name__ == "__main__": + main() -- cgit v1.2.3