Назад к вопросам
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