Этот вопрос проверяет понимание магических методов для работы с объектами, которые ведут себя как контейнеры (списки, словари).
Эти методы позволяют объектам поддерживать доступ, изменение и удаление элементов, используя квадратные скобки.
__getitem__(key) вызывается при чтении значения.
__setitem__(key, value) вызывается при присвоении значения.
__delitem__(key) вызывается при удалении значения.
Магические методы __getitem__, __setitem__, __delitem__ предоставляют возможность создавать объекты, которые работают как стандартные коллекции (например, списки или словари).
Пример реализации:
class CustomDict:
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]
obj = CustomDict()
obj["name"] = "Alice" # __setitem__
print(obj["name"]) # __getitem__
del obj["name"] # __delitem__Применение:
Реализация кастомных контейнеров или коллекций.
Создание интерфейсов для объектов, имитирующих поведение словарей или списков.