Understanding Descriptors in Python: Customizing Attribute Access
In Python, descriptors are used to customize attribute access.
A descriptor is any object that implements one or more of the descriptor methods (__get__
, __set__
, __delete__
).
Contents
Question: Understanding Descriptors in Python: Customizing Attribute Access
What will be the output of the following?
class DescriptorExample:
def __get__(self, instance, owner):
return 'Descriptor value'
class MyClass:
attr = DescriptorExample()
obj = MyClass()
print(obj.attr)
Answer: A
The DescriptorExample
class defines the __get__
method, which is part of Python’s descriptor protocol.
When you try to access obj.attr
, Python calls the __get__
method of the descriptor (because attr
is an instance of DescriptorExample
), which returns the string 'Descriptor value'
.