@Andrei1penguin1

Зачем нужны дескрипторы в python?

Доброго времени суток, в целом я представляю, что такое дескриптор, т.е. объект, класс, имеющий один из методов: __get__(), __set__(), __delete__()
Но я не совсем понимаю, зачем их использовать
Объясните пожалуйста на простом примере, когда дескриптор будет значительно лучше другого, более стандартного решения, и в каких случаях его стоит применять
  • Вопрос задан
  • 782 просмотра
Решения вопроса 1
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SergMagpie
@SergMagpie
Учюсь я, не волшебник еще
Пруф тут
В общем, дескриптор - это атрибут объекта с «поведением привязки», доступ к атрибуту которого был переопределен методами в протоколе дескриптора. Этими методами являются __get __ (), __set __ () и __delete __ (). Если какой-либо из этих методов определен для объекта, он называется дескриптором. Поведение по умолчанию для доступа к атрибуту заключается в получении, установке или удалении атрибута из словаря объекта. Например, a.x имеет цепочку поиска, начинающуюся с .__ dict __ ['x'], затем введите (a) .__ dict __ ['x'] и продолжайте через базовые классы типа (a), исключая метаклассы. Если искомое значение является объектом, определяющим один из методов дескриптора, тогда Python может переопределить поведение по умолчанию и вместо этого вызвать метод дескриптора. То, где это происходит в цепочке приоритетов, зависит от того, какие методы дескриптора были определены. Дескрипторы - это мощный протокол общего назначения. Это механизм, лежащий в основе свойств, методов, статических методов, методов класса и super (). Они используются в самом Python для реализации новых классов стилей, представленных в версии 2.2. Дескрипторы упрощают базовый C-код и предлагают гибкий набор новых инструментов для повседневных программ Python.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы