Что такое collections.abc
Python
Middle
Без компании
Что такое collections.abc
Ответы
`collections.abc` — это модуль в Python, содержащий абстрактные базовые классы (ABC) для различных структур данных. Эти классы определяют интерфейсы для стандартных коллекций (как `list`, `dict`, `set` и т.д.), позволяя создавать собственные классы, совместимые с ними.
Примеры популярных ABC:
- `Sequence` — интерфейс для неизменяемых последовательностей (как `tuple`)
- `MutableSequence` — для изменяемых (как `list`)
- `Mapping` — для словарей (`dict`)
- `Iterable` — любой объект с методом `__iter__`
Пример использования:
```
from collections.abc import MutableSequence
class MyList(MutableSequence):
def __init__(self):
self._data = []
def __getitem__(self, index):
return self._data[index]
def __len__(self):
return len(self._data)
def __setitem__(self, index, value):
self._data[index] = value
def __delitem__(self, index):
del self._data[index]
def insert(self, index, value):
self._data.insert(index, value)
```
Использование ABC помогает соблюдать контракт интерфейса и делает код более предсказуемым.