Junior — Middle
90
¿Tiene experiencia en el uso de descriptores en Python para gestionar el acceso a los atributos de los objetos?
Respuesta de la IA
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
Таким образом, дескрипторы полезны для инкапсуляции логики доступа к атрибутам и валидации данных.