Встречается на собеседованиях • сегодня

Какие методы нужно переопределить, чтобы объект себя вел как словарь

Для того чтобы объект вёл себя как словарь, необходимо переопределить следующие методы:

  • __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)

Пример минимальной реализации:

python
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)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы