Sobes.tech
Назад к вопросам
Junior — Middle
62

Что необходимо переопределить в классе, чтобы его экземпляры могли функционировать как словари?

Ответ от нейросети

sobes.tech AI

Чтобы экземпляры класса в Python могли функционировать как словари, необходимо переопределить методы, которые отвечают за поведение словаря. Основные методы:

  • __getitem__(self, key) — для доступа по ключу, например, obj[key].
  • __setitem__(self, key, value) — для присвоения значения по ключу, например, obj[key] = value.
  • __delitem__(self, key) — для удаления элемента по ключу.
  • __contains__(self, key) — для проверки наличия ключа с помощью in.

Пример:

class MyDict:
    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

# Использование
d = MyDict()
d['a'] = 10
print(d['a'])  # 10
print('a' in d)  # True