Sobes.tech
Назад к вопросам
Middle
1

Какая главная функция дескрипторов в Python?

Компании, где спрашивали
RadLab

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

sobes.tech AI

Дескрипторы в Python — это объекты, которые управляют доступом к атрибутам других объектов. Главная функция дескрипторов — переопределять поведение при чтении, записи и удалении атрибутов через методы __get__, __set__ и __delete__.

Это позволяет реализовывать свойства, валидацию данных, ленивую инициализацию и другие механизмы контроля доступа к данным.

Пример простого дескриптора:

class Descriptor:
    def __get__(self, instance, owner):
        return instance._value
    def __set__(self, instance, value):
        if value < 0:
            raise ValueError("Значение не может быть отрицательным")
        instance._value = value

class MyClass:
    attr = Descriptor()

obj = MyClass()
obj.attr = 10  # работает
# obj.attr = -5  # вызовет ValueError