Декораторы в Python
Vložit
- čas přidán 4. 07. 2024
- В этом видео мы поговорим о декораторах в Python. На собеседованиях о них часто спрашивают. Мы детально рассмотрим механизмы работы декораторов на примере lru_cache из functools и сами напишем его простенький аналог. Узнаем как делаеть декораторы на основе функций и классов, какие вспомогательные инструменты для этого есть, как делать декораторы с параметрами и что можно декорировать с их помощью. И даже рассмотрим совсем уж экзотические примеры того, что может быть использовано в качестве декоратора.
0:00 Вступление
0:51 Последовательность Фибоначчи
1:54 Медленная рекурсия
2:43 Ускорили с декоратором lru_cache
3:46 Что такое декоратор?
4:47 Самый простой декоратор
5:03 Чуть усложняем
5:46 Делаем более универсально
6:44 Свой кеширующий декоратор
8:01 Декораторы сломали атрибуты
8:58 Чиним ручным копированием
9:35 Чиним с помощью wraps
10:18 Декоратор с параметрами
12:23 Класс как декоратор
14:59 Подменили функцию объектом
15:25 Декорируем двумя декораторами
15:47 В каком порядке применяются декораторы?
16:45 Декораторы для классов
18:10 Извращаем идею декораторов
19:27 В следующем видео
Хорошо получается объяснять новые видео записывай. Не останавливаться.
Классный урок! Побольше бы таких наглядных уроков!
О, канал совсем молодой, оказывается. Вообще не подумал бы, качество - топ 👍
Не знал раньше про декораторы, было очень полезно. Спасибо автору. И ютубу, что привёл меня сюда.(просто всплыло в рекомендациях, я специально не искал)
Неплохо рассказано о декораторах. Я много промотрел виде ваше лучшее. Не все умеют доносить информацию
Отлично! Просто отлично обьяснил. Спасибо!
спасибо, одно из самых понятных объяснений про декораторы. Продолжай! Подписка.
Круто , спасибо)
Понятно и полезно!
Спасибо за видео!
Стало понятнее.
Отлично!
Я не знаю кто Вы, но объясняете вы прекрасно. Спасибо.
Прикольно 😃
Автор, продолжай запись.
У тебя действительно хорошо получается.
Автор, у тебя отлично получается. Почему так мало роликов выкладываешь? Давай ещё)
Может для jupyter не надо, но в PyCharm вам нужно будет сделать импорт
from functools import wraps
Чтобы воспользоваться декоратором wraps.
P.S. Самое понятное и живое объяснение декораторов, особенно с параметрами.
подписка
А как выудить значение cnt при таком порядке декора:
@lru_cache
@counter
def fib():
...
Очень хорошее объяснение, про дефолтные декораторы обычно забывают упомянуть. Что на очереди? итераторы и генераторы может быть?)
Descriptor Protocol, но да, генераторы и менеджеры контекста, тоже хороший вариант.
@@user-tn4pv9xh2s так когда ждать?)
То ли я утомился за день, то ли уровень сложный, то ли максимально много упущено мест, где можно прокомментировать подробнее. В общем сложнее, чем в прочих видео на YT.
Да, сложно объясняет, смотрю его когда уже выучу, для повторения
Друг, лучше расскажи про парсеры футбола пожалуйста
Что за IDE в которой ты пишешь код?
Jupyter Notebook
Вот весь lru_cache на практике при том же коде: TypeError: Expected maxsize to be an integer or None
В чём же ошибка?
Полагаю, версия Python ниже чем у меня (3.8.1). Можно либо попробовать версию Python 3.8 и выше, либо попробовать не @lru_cache, а @lru_cache()
@@user-tn4pv9xh2s Да, скобочки поставил и заработало)
Ощущение, что на функции Фибоначчи не самый лучший способ показать декораторы
так что такое декоратор, нифига не понял
Рассказал хорошо, где дескрипторы?
Господи, если вы кодер и вам нужно двадцати минутное видео, что бв понять декораторы, может программирование это не ваше?
Все понятно в двух случаях: когда действительно понял и когда на самом деле не разобрался. Декораторы - достаточно сложный и объёмный момент в python. И двадцати минут на самом деле мало, если только у вас не второй вариант.