๐ŸŽ 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

Python Package
A directory containing Python modules and an __init__.py file, providing a way to organize and distribute reusable code.
List Comprehension
A concise syntax for creating new lists by applying an expression to each item in an existing iterable.
Python Property
A built-in decorator that lets you define methods that behave like attributes, enabling controlled access to instance data.
ABC (Abstract Base Class)
A class that defines a common interface for subclasses by declaring abstract methods that must be implemented.
SQLAlchemy
The most popular Python SQL toolkit and ORM that provides a full suite of database abstraction patterns.
Requests Library
An elegant HTTP library for Python that simplifies making web requests with a human-friendly API.
View All Python Terms โ†’