Программирование 2.0
Программирование 2.0
  • 2
  • 24 658
Протокол дескрипторов в Python
В этом видео мы поговорим о двух взаимосвязанных вещах - атрибутах объектов и протоколе дескрипторов в Python. Несмотря на то, что в дескрипторах нет ничего сложного, есть целый ряд нюансов, связанных с тем, как этот механизм работает. На простых примерах мы разберем порядок вычисления значения атрибута объекта и возможности вклиниться своим кодом в разные этапы этого механизма. Так же мы обсудим несколько возможных применений дескрипторов.
0:00 Вступление
0:41 Обращение к свойствам класса через свойства объекта
1:42 Приоритет словаря объекта над свойствами класса
2:40 Метод __get__
3:22 Дескриптор без данных (Non-data descriptor)
3:43 Приоритет словаря объекта над дескриптором без данных
3:59 Немного шаманства
4:37 Метод __set__
5:11 Дескриптор данных (Data descriptor)
5:26 Приоритет дескриптора данных над словарём объекта
5:34 Обращение к словарю объекта из методов дескрипторов
6:38 Декоратор @property умеет всё то же самое
8:08 Метод __set_name__
8:53 Делаем методы __get__ и __set__ более универсальными
9:36 Единый код для управления разными свойствами
10:10 Как работает __set_name__?
10:25 Дескриптор, как средство логирования любого доступа к атрибутам
10:40 Дескриптор, как средство валидации значений атрибутов
12:03 Дескриптор, как средство для работы с колонками в ORM
12:26 Метод __getattr__ не мешает работе с дескрипторов
13:35 Метод __getattribute__ отключает механизм дескрипторов
14:36 Порядок поиска атрибута объекта
17:15 Исключение AttributeError
18:12 Заключение
19:33 В следующих сериях
Переглядів: 10 298

Відео

Декораторы в Python
Переглядів 14 тис.4 роки тому
В этом видео мы поговорим о декораторах в Python. На собеседованиях о них часто спрашивают. Мы детально рассмотрим механизмы работы декораторов на примере lru_cache из functools и сами напишем его простенький аналог. Узнаем как делаеть декораторы на основе функций и классов, какие вспомогательные инструменты для этого есть, как делать декораторы с параметрами и что можно декорировать с их помощ...