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
Использование дескрипторов помогает централизовать логику доступа и валидации атрибутов.