DeaD_EyE icon

Range class, not complete, not tested enough

DeaD_EyE | PRO | 11/19/24 08:11:52 PM UTC (Edited) | 0 ⭐ | 512 👁️ | Never ⏰ | []
Python |

1.13 KB

|

None

|

0 👍

/

0 👎

class Range:
    print("Class creation")
 
    def __init__(self, start_stop, stop=None, step=None):
        print("__init__")
        if stop is None:
            self.start = 0
            self.stop = start_stop
        else:
            self.start = start_stop
            self.stop = stop
        self.step = step or 1
 
    def __iter__(self):
        print("__iter__")
        current = self.start
        while self._in_range(current):
            yield current
            current += self.step
 
    def __contains__(self, value):
        print("__contains__")
        in_sequence = (value - self.start) % self.step == 0
        return self._in_range(value) and in_sequence
 
    def _in_range(self, value):
        return value < self.stop if self.step > 0 else value > self.stop
 
    def __getitem__(self, index):
        print("__getitem__")
        value = self.start + self.step * index
        if not self._in_range(value):
            raise IndexError("Index is out of range")
        return value
 
    __call__ = __getitem__
 
    def index(self, index):
        print("__index__")
        return self[index]
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎