Junior — Middle
87
Da li imate iskustva u korišćenju deskriptora u Pythonu za upravljanje pristupom atributima objekata?
Одговор од АИ
sobes.tech АИ
Да, дескрипторы в 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
Таким образом, дескрипторы полезны для инкапсуляции логики доступа к атрибутам и валидации данных.