๐ŸŽ New User? Get 20% off your first purchase with code NEWUSER20 ยท โšก Instant download ยท ๐Ÿ”’ Secure checkout Register Now โ†’
Menu

Categories

Python Advanced

What is Python Descriptors?

Objects that define __get__, __set__, or __delete__ methods, controlling how attribute access works on other objects.

Descriptors are the mechanism behind properties, class methods, static methods, and slots in Python. When an object defines __get__(), __set__(), or __delete__(), it becomes a descriptor. Data descriptors (with __set__ or __delete__) take precedence over instance dictionaries, while non-data descriptors (only __get__) defer to instance attributes. This protocol powers Django ORM fields, SQLAlchemy columns, and validation frameworks. Understanding descriptors reveals how Python's attribute access truly works โ€” when you access obj.attr, Python calls type(obj).__dict__['attr'].__get__(obj, type(obj)) if attr is a descriptor.

Related Terms

List Comprehension
A concise syntax for creating new lists by applying an expression to each item in an existing iterable.
Python Typing Module
A standard library module providing type hints for function signatures and variables, enabling static analysis without runtime enforcement.
Python Package
A directory containing Python modules and an __init__.py file, providing a way to organize and distribute reusable code.
PIP
The standard package installer for Python, used to install and manage third-party libraries from PyPI.
Django
A high-level web framework that follows the batteries-included philosophy, providing ORM, admin, auth, and more out of the box.
Class
A blueprint for creating objects that bundles data (attributes) and behavior (methods) together.
View All Python Terms โ†’