Skip to main content

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.