Sobes.tech
Back to questions
Junior — Middle
73

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

Answer from AI

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

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