| t | class Dots: | t | class Dots: |
| | | |
| def __init__(self, a, b): | | def __init__(self, a, b): |
| self.a = a | | self.a = a |
| self.b = b | | self.b = b |
| | | |
| def point(self, k, n): | | def point(self, k, n): |
| if n == 1: | | if n == 1: |
| return self.a | | return self.a |
| step = (self.b - self.a) / (n - 1) | | step = (self.b - self.a) / (n - 1) |
| return self.a + k * step | | return self.a + k * step |
| | | |
| def __getitem__(self, key): | | def __getitem__(self, key): |
| if isinstance(key, int): | | if isinstance(key, int): |
| n = key | | n = key |
| return (self.point(i, n) for i in range(n)) | | return (self.point(i, n) for i in range(n)) |
| elif isinstance(key, slice): | | elif isinstance(key, slice): |
| if key.step is None: | | if key.step is None: |
| i = 0 if key.start is None else key.start | | i = 0 if key.start is None else key.start |
| n = key.stop | | n = key.stop |
| return self.point(i, n) | | return self.point(i, n) |
| else: | | else: |
| i = 0 if key.start is None else key.start | | i = 0 if key.start is None else key.start |
| j = key.step if key.stop is None else key.stop | | j = key.step if key.stop is None else key.stop |
| n = key.step | | n = key.step |
| return (self.point(k, n) for k in range(i, j)) | | return (self.point(k, n) for k in range(i, j)) |