Back to questions
Middle
2
Какая главная функция дескрипторов в Python?
Companies where asked
RadLab
Answer from AI
sobes.tech AI
Дескрипторы в Python — это объекты, которые управляют доступом к атрибутам других объектов. Главная функция дескрипторов — переопределять поведение при чтении, записи и удалении атрибутов через методы __get__, __set__ и __delete__.
Это позволяет реализовывать свойства, валидацию данных, ленивую инициализацию и другие механизмы контроля доступа к данным.
Пример простого дескриптора:
class Descriptor:
def __get__(self, instance, owner):
return instance._value
def __set__(self, instance, value):
if value < 0:
raise ValueError("Значение не может быть отрицательным")
instance._value = value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 10 # работает
# obj.attr = -5 # вызовет ValueError