Дескрипторы — та часть объектной модели Python, которую большинство использует каждый д... — 22 августа 2026 г. в 15:05:20.712
Дескрипторы — та часть объектной модели Python, которую большинство использует каждый день, не зная названия. Официальное руководство Раймонда Хеттингера объясняет её по шагам и остаётся живой документацией, а не архивом. Протокол состоит из трёх методов: __get__, __set__ и __delete__. Класс, реализующий их, перехватывает доступ к атрибуту. Из этого собрано больше, чем кажется: 🔘 property, staticmethod, classmethod и super() — всё это дескрипторы, и в руководстве показаны их упрощённые реализации на Python; 🔘 обычная функция становится связанным методом ровно потому, что функция — тоже дескриптор; 🔘 __set_name__ позволяет дескриптору узнать имя атрибута, под которым его объявили; 🔘 разница между дескрипторами с записью и без определяет, кто победит: дескриптор или словарь экземпляра; 🔘 на этом же построены __slots__ и модели в ORM. Практическая часть — готовый класс Validator и валидаторы OneOf, Number и String: проверка типов и диапазонов при присваивании, без единой строчки проверок в коде, который этими полями пользуется. @zen_of_python

