Методы __getitem__, __setitem__, __delitem__
Этот вопрос проверяет понимание магических методов для работы с объектами, которые ведут себя как контейнеры (списки, словари).
Короткий ответ
Эти методы позволяют объектам поддерживать доступ, изменение и удаление элементов, используя квадратные скобки.
__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__
Применение:
- Реализация кастомных контейнеров или коллекций.
- Создание интерфейсов для объектов, имитирующих поведение словарей или списков.