Как устроены декораторы в python?

preview_player
Показать описание
Чтобы разобраться с тем, как работают декораторы нужно помнить, что функция в питоне - полноценный объект. Давайте возьмем простую задачу проверки прав пользователя и на ее основе разберемся, как работают декораторы в python.

Канал создан при поддержке сообщества Moscow Python.
Рекомендации по теме
Комментарии
Автор

Спасибо за такие хорошие пояснения. Пока еще не всегда успеваю уследить, но ваша способность понятно объяснять на очень высоком уровне, как и чистота речи :)

grandpraline
Автор

Я понял декораторы😂😂😂😂😂
Вот это да😮😮😮
Спасибо за шикарное объяснения.
Вставлял в проект декоратор для подсчета работы функций, но не понимал как работает😅

Mr.Fix_man
Автор

Спасибо, очень интересный пример) Везде данная тема обезличена, а тут живой пример)

mustakrakish
Автор

Спасибо большое автору за быстрые и логичные комментарии. Всем советую подписку и лайк.

FoodMaks
Автор

Есть таки замечание: Декоратор это не какая то фишка питона - это паттерн и он реализуется в любом ЯП где есть функции высшего порядка. Собственно синтакисис, через собачку это просто сахарок для нас любимых.
Не понимаю почему это скрывается - но на собесах этим просто уничтожают ахахаха

artemsukharenko
Автор

Лучшее объяснение декораторов из всех, что я видел

АндрейЛитвиненко-гэ
Автор

Вот эти наслоения. Усложнение и добавление синтаксиа по нарастающей. Это блестяще. Господи, спасибо Вам огромное😢 наконец понятно все и до конца

irno
Автор

Приветствую, не знаете ли вы где можно попрактиковать декораторы, а то не совсем ясно. Спасибо!

WARRIOR-qu
Автор

Если wrapper это объект функции, то почему когда вызываем check_access нам возвращают не объект wrapper, а результат работы wrapper?
Результат работы check_access объект функции wrapper?

timurazatovich
Автор

Добрый день, Михаил! Спасибо за видео: все доступно и хорошим языком объяснено. Я только начинаю остаивать python и написала самый простой цикл с условиями, которые должны проверяться по 2-м колонкам. Увы, код не хочет проверять данные, которые я передаю - выдает Non для всех строк. Может ты сможешь помочь найти ошибку. # Функция, которая cгруппирует пары по видам
def categorize_species(column, column1):
try:
if '3/4 gyr x saker' in column and 'gyr' in column1:
return '3/4 gyr_saker + gyr'
elif '3/4 gyr x saker' in column and 'gyr x saker' in column1:
return '3/4 gyr_saker + gyr_saker'
elif '7/8 gyr x saker' in column and '3/4 gyr x saker' in column1:
return '7/8 gyr_saker + 3/4 gyr_saker'
else:
return None
except:
pass

# Передаем данные в функцию
column = data['species_male']
column1 = data['species_female']
data['new'] = categorize_species(column, column1)

thebijou
Автор

Есть ли где-то четкое определение что такое декоратор?

avazart