Какие методы нужно переопределить, чтобы объект себя вел как словарь
Python
Middle
Без компании
Какие методы нужно переопределить, чтобы объект себя вел как словарь
Ответы
Для того чтобы объект вёл себя как словарь, необходимо переопределить следующие методы:
- `__getitem__(self, key)` — доступ по ключу: `obj[key]`
- `__setitem__(self, key, value)` — установка значения: `obj[key] = value`
- `__delitem__(self, key)` — удаление элемента: `del obj[key]`
- `__contains__(self, key)` — проверка наличия ключа: `key in obj`
- `__iter__(self)` — итерация по ключам: `for key in obj`
- `__len__(self)` — получение длины: `len(obj)`
Пример минимальной реализации:
```
class DictLike:
def __init__(self):
self._data = {}
def __getitem__(self, key):
return self._data[key]
def __setitem__(self, key, value):
self._data[key] = value
def __delitem__(self, key):
del self._data[key]
def __contains__(self, key):
return key in self._data
def __iter__(self):
return iter(self._data)
def __len__(self):
return len(self._data)
```