12. Descriptors (get, set, delete)
Descriptors are objects that control access to another object's attributes.
Example
class Descriptor:
def __get__(self, instance, owner):
return instance._value
def __set__(self, instance, value):
instance._value = value
def __delete__(self, instance):
del instance._value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 10
print(obj.attr)
Wrap-Up
Descriptors power properties, methods, and many parts of Python's internals.