Как работают дескрипторы в 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:
value = Descriptor()
def __init__(self, value):
self.value = value
obj = MyClass(10)
print(obj.value) # 10
obj.value = -5 # Ошибка: Значение должно быть положительным!
Python Learning 👩💻