| 
587
 | 
     1 #!/usr/bin/env python
 | 
| 
 | 
     2 # -*- coding: utf-8 -*-
 | 
| 
 | 
     3 
 | 
| 
 | 
     4 """
 | 
| 
 | 
     5 illustration of a class iterable
 | 
| 
 | 
     6 """
 | 
| 
 | 
     7 # XXX does not work!!@ TODO!!! XXX #
 | 
| 
 | 
     8 
 | 
| 
 | 
     9 import argparse
 | 
| 
 | 
    10 import sys
 | 
| 
 | 
    11 
 | 
| 
 | 
    12 class MyIterable(object):
 | 
| 
 | 
    13     def __init__(self, max):
 | 
| 
 | 
    14         self.items = list(range(max))
 | 
| 
 | 
    15     def __iter__(self):
 | 
| 
 | 
    16         return self
 | 
| 
 | 
    17     def next(self):
 | 
| 
 | 
    18         for i in self.items:
 | 
| 
 | 
    19             yield i
 | 
| 
 | 
    20 
 | 
| 
 | 
    21 def main(args=sys.argv[1:]):
 | 
| 
 | 
    22 
 | 
| 
 | 
    23     usage = '%prog [options]'
 | 
| 
 | 
    24     parser = argparse.ArgumentParser(usage=usage, description=__doc__)
 | 
| 
 | 
    25     options = parser.parse_args(args)
 | 
| 
 | 
    26 
 | 
| 
 | 
    27     myiter = MyIterable(10)
 | 
| 
 | 
    28     for i in myiter:
 | 
| 
 | 
    29         print ('Hi {}'.format(i))
 | 
| 
 | 
    30 
 | 
| 
 | 
    31 if __name__ == '__main__':
 | 
| 
 | 
    32     main()
 |