Back to questions
Junior — Middle
53
Имели ли вы опыт создания собственных дескрипторов для объектов или классов?
Answer from AI
sobes.tech AI
Да, я имел опыт создания собственных дескрипторов в Python. Дескрипторы — это объекты, которые управляют доступом к атрибутам других объектов через методы __get__, __set__ и __delete__.
Пример простого дескриптора, который валидирует, что присваиваемое значение — положительное число:
class PositiveNumber:
def __init__(self):
self._value = 0
def __get__(self, instance, owner):
return self._value
def __set__(self, instance, value):
if value <= 0:
raise ValueError("Значение должно быть положительным")
self._value = value
class Product:
price = PositiveNumber()
p = Product()
p.price = 100 # работает
# p.price = -10 # вызовет ValueError
Такой подход позволяет централизованно контролировать логику доступа и валидации атрибутов.