Definition
Any object which defines the methods __get__(), __set__(), or
__delete__(). When a class attribute is a descriptor, its special
binding behavior is triggered upon attribute lookup. Normally, using
a.b to get, set or delete an attribute looks up the object named b in
the class dictionary for a, but if b is a descriptor, the respective
descriptor method gets called. Understanding descriptors is a key to a
deep understanding of Python because they are the basis for many features
including functions, methods, properties, class methods, static methods,
and reference to super classes.
For more information about descriptors’ methods, see Implementing Descriptors or the Descriptor How To Guide.