Back to questions
Junior — Middle
65
Имели ли вы опыт использования дескрипторов в Python для управления доступом к атрибутам объектов?
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 Account:
balance = PositiveNumber()
acc = Account()
acc.balance = 100 # работает
acc.balance = -50 # вызовет ValueError
Таким образом, дескрипторы полезны для инкапсуляции логики доступа к атрибутам и валидации данных.