Sobes.tech
Back to questions
Middle
2

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

Companies where asked
RadLab

Answer from AI

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