Advertisement
o3002

Keeping the iterator and iterable classes seperate or not?

Jun 14th, 2023
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.08 KB | Source Code | 0 0
  1. class Squares:
  2.     def __init__(self, start, end):
  3.         self.index = start
  4.         self.end = end
  5.        
  6.     def __iter__(self):
  7.         return self
  8.  
  9.     def __next__(self):
  10.         if self.index >= self.end# Checking if index is out of the range,
  11.             raise StopIteration     # raise StopIteration if it is.
  12.        
  13.         result = self.index**2      # First, store the square of first item, then iterate.
  14.         self.index += 1
  15.  
  16.         return result
  17.  
  18. class Sqrt:
  19.     def __init__(self, start, end):
  20.         self.start = start
  21.         self.end = end
  22.  
  23.     def __iter__(self):
  24.         return SqrtIterator(self.start, self.end)   # Iterable classes' variables are explicitly passed.
  25.  
  26. class SqrtIterator:
  27.     def __init__(self, start, end):
  28.         self.index = start
  29.         self.end = end
  30.  
  31.  
  32.     def __iter__(self):
  33.         return self
  34.    
  35.     def __next__(self):
  36.         self.index += 1
  37.  
  38.         if self.index == self.end:
  39.             raise StopIteration
  40.        
  41.         return (self.index - 1)**0.5    # Returning one less because we incremented at first
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement