Какие методы должна реализовывать последовательность в Python
Python
Middle
Без компании
Какие методы должна реализовывать последовательность в Python
Ответы
Последовательность в Python должна реализовывать следующие методы для поддержки протокола последовательностей:
- `__len__()` - возвращает длину последовательности
- `__getitem__(index)` - получение элемента по индексу (поддержка срезов)
- `__contains__(item)` - проверка вхождения элемента (может использовать `__getitem__`)
- `__iter__()` - итерация по элементам (может использовать `__getitem__`)
- `__reversed__()` - обратная итерация (опционально)
Пример минимальной реализации:
```
class MySeq:
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data)
def __getitem__(self, index):
return self.data[index]
# Использование
seq = MySeq([1, 2, 3])
print(len(seq)) # 3
print(seq[1]) # 2
print(3 in seq) # True
```
Для изменяемых последовательностей нужно добавить `__setitem__` и `__delitem__`.