Библиотека собеса по Python | вопросы с собеседований
6.03K subscribers
671 photos
14 videos
527 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Чем «data»-дескриптор отличается от «non-data», как это влияет на порядок поиска атрибута, и почему @property — это тоже дескриптор?

В Python любой объект с __get__ — дескриптор.

Non-data дескриптор: имеет только __get__. Проигрывает записи в obj.__dict__.
@property — именно non-data дескриптор.

Data дескриптор: имеет __set__ и/или __delete__. Имеет приоритет над obj.__dict__, блокируя прямую подмену.

Порядок разрешения атрибутов (__getattribute__): data-descriptor → obj.__dict__ → non-data descriptor/атрибут класса → __getattr__.

Пишите свой data-дескриптор для переиспользуемой логики: валидация, типизация, lazy/кэш, связка с внешними ресурсами.


Библиотека собеса по Python
👍1