Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Squares:
- def __init__(self, start, end):
- self.index = start
- self.end = end
- def __iter__(self):
- return self
- def __next__(self):
- if self.index >= self.end: # Checking if index is out of the range,
- raise StopIteration # raise StopIteration if it is.
- result = self.index**2 # First, store the square of first item, then iterate.
- self.index += 1
- return result
- class Sqrt:
- def __init__(self, start, end):
- self.start = start
- self.end = end
- def __iter__(self):
- return SqrtIterator(self.start, self.end) # Iterable classes' variables are explicitly passed.
- class SqrtIterator:
- def __init__(self, start, end):
- self.index = start
- self.end = end
- def __iter__(self):
- return self
- def __next__(self):
- self.index += 1
- if self.index == self.end:
- raise StopIteration
- return (self.index - 1)**0.5 # Returning one less because we incremented at first
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement