Sobes.tech
Назад к вопросам
Junior — Middle
74

Имели ли вы дело с использованием дескрипторов в своих проектах?

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

sobes.tech AI

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

Пример простого дескриптора для контроля доступа к атрибуту:

class PositiveNumber:
    def __get__(self, instance, owner):
        return instance._value

    def __set__(self, instance, value):
        if value < 0:
            raise ValueError("Значение должно быть положительным")
        instance._value = value

class MyClass:
    number = PositiveNumber()

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

Использование дескрипторов помогает централизовать логику доступа и валидации атрибутов.