Уважаемый автор, у вас безусловный преподавательский талант. Это видно по многим видео. В каждом вы не спеша очень доступно разъясняете новичкам тему. И, что важно, морально поддерживаете их. Спасибо за ваш труд и желание поделиться знаниями! По теме декораторов. Понимание для меня приходило последовательно. Я познакомился с ними 3 месяца назад. Нельзя сказать, что объяснение (на другом канале) было плохое. Скорее, просто понадобилось определенное время, чтобы переварить это. Наконец-то пищеварение справилось) Спасибо автору канала.
@Miron_Nicolaevich Жыл бұрын
полностью согласен. у меня имеется доступ к платным курсам от коробки, там эти информацию упаковали в 9 минут. и в основном автор просто диктует что пишет. а не пытается объяснять свои действия. и нет, они не так уж плохи, но автор Python Russia пишет видео от души так сказать)
@АннаПетрова-и1з2 жыл бұрын
Спасибо огромное за уроки, безумно полезно и доступно!
@PythonRussian2 жыл бұрын
благодарю за теплые слова. К сожалению, сейчас совсем нет времени на новые видео, но после нового года постараюсь еще пару полезностей заснять.
@randmi80477 күн бұрын
Большое спасибо Это самое понятное объяснение которое я нашел Теперь я прозрел!!!
@PythonRussian7 күн бұрын
встань и иди! кодить!
@Саня_КИРПИЧ132 жыл бұрын
Вот просто большое спасибо, никакой воды, все понятным языком, как для кирпича все очень даже понял, автору большое спасибо
@Miron_Nicolaevich Жыл бұрын
не жалко писать коменты автору, который делает очень годный контент!
@y18kotov2 жыл бұрын
С 100500 попытки стало понятно. Спасибо!
@_Kruzo_2 жыл бұрын
Все доступно и без лишней воды....хотя, в фоне как будто вода льется перед микрофоном :))
@Yuriy_ko Жыл бұрын
Спасибо за урок! После просмотра, закрепил написанием собственного декоратора и опробовал на разных функциях. Осталось переварить, зачем он нужен(практическое применение), но это дело времени и много практики.
@donfedor0072 жыл бұрын
Спасибо Вам за видео! Очень понятно и интересно!
@IlyaIlya_lopkop3 жыл бұрын
Это не видео, а бомба!
@PythonRussian3 жыл бұрын
не уверен, что ты искренен=) по-моему немного путано получилось и не понятно
@IlyaIlya_lopkop3 жыл бұрын
@@PythonRussian нуу не знаю, я просто декораторы уже проходил, поэтому мне все понятно было. Это надо спросить у тех кто впервые о таком слышит
@МаксимПетровский-н2г4 ай бұрын
Хороший разбор, спасибо!
@ПавелПрохоров-е9ц3 ай бұрын
Спасибо за объяснение!
@artyomk1476 Жыл бұрын
ТЫ просто ТОП! Спасибо за то что так круто объясняешь!!!!!
@abra-kadabra5000 Жыл бұрын
Спасибо! Действительно очень круто объясняете, это талант!
@SoloveY1990 Жыл бұрын
Большое спасибо! Достаточно сложно понять с первого раза что произошло)) понял, что декоратор это некий апгрейд существующих или даже импортированных функций под наши задачи.
@kumushabdurahmanova78223 жыл бұрын
Ждем вторую часть!)
@PythonRussian3 жыл бұрын
пока времени не хватает, но сделаю
@nons5761 Жыл бұрын
лучшее обьяснение, обожаю твой канал
@jackhopckien4566 Жыл бұрын
Спасибо. Подробно и понятно.
@smbdwnstldme3 жыл бұрын
Крутая идея - создать декоратор, который заворачивает функцию в thread и запускает его.
@PythonRussian3 жыл бұрын
идея хорошая, главное понимать, что там в функции будет происходить и не забывать про GIL
@igormatveev83559 ай бұрын
большое спасибо за материал, но как же тихо, это жесть
@Prodigyqqq7 ай бұрын
Весь ютуб лучше смотреть с включенной тонокомпенсацией в Realtek
@CRESHT2 жыл бұрын
Круто! Кое что дошло, но практика все решает
@PythonRussian2 жыл бұрын
да, без практики в нашем деле никуда
@rpuropu3 жыл бұрын
сегодня пойду под твой канал пару общих тетрадок куплю).. ьуду раскрывать темы до конца, со всеми ссылками)
@PythonRussian3 жыл бұрын
вот это светлая мысль! не потому что канал, а то что будешь конспектировать и читать по ссылкам и в книжках - это просто круто помогает в развитии. У самого старые конспекты лежат по питону =) Отработали свое и принесли свою пользу.
@ОлександрКатюха3 жыл бұрын
Я это с самого начала делаю👍🏻
@stevem4806 Жыл бұрын
Спасибо!
@Laserball742 жыл бұрын
Просьба в следующих видео сделать шрифт по крупнее так как Вас смотрят люди и с плохим зрением!
@PythonRussian2 жыл бұрын
да, я стараюсь, просто если сильно увеличивать то на экране мало входит и приходится скроллить туда сюда.
@sabotage711Ай бұрын
Лучший👍
@ValeriyM_46 Жыл бұрын
отлично объяснил ))) эффект прозрения получил , спасибо)).подпись: горемыка )))
@barma13092 жыл бұрын
Прекрасно!!!
@andreiart91602 жыл бұрын
Контент - пушка_ракета!
@ПавелПрохоров-е9ц6 ай бұрын
Спасибо ! А почему в выводе значение основной функции (5) идёт после "обертки " декоратора "до" и "после" ?
@ВладимирГригорьевич-у2р3 жыл бұрын
да, на первых порах сложно =) но зато информативно
@ВалерийБарсов-ы1я Жыл бұрын
Спасибо за урок. Вы хорошо объяснили что такое декоратор, но не объяснили зачем он нужен. из урока ясно, что функцию sum() можно использовать без всех этих танцев с бубном. Так что урок либо следует переработать, либо сделать предварительное введение в декораторы где рассказать, зачем они нужны.
@drarov91 Жыл бұрын
@Python_Russian, как вы прикрепляете функцию print в конце строки и она автоматически встает в начало?
@PythonRussian Жыл бұрын
пичарм так умеет, у меня есть видео по комбинациям клавиш и фишкам.
@725etw7w Жыл бұрын
Здравствуйте, почему мы не можем вызывать враппер с тремя аргументами и третьм передавать func(как объект), и всё будет одно и тоже? Или это так делать не надо?
@Miron_Nicolaevich10 ай бұрын
возможно глупый вопрос. но вот стало интересно. Попалась такая задача, где имеется функция, уже задекорированная декоратором №1 и она с параметром. Мне нужно было обернуть декоратор №1 своим декоратором № 2. Я конечно сделал по самому очевидному пути. Перед местом, где функция декорируется декоратором №1 обернул декоратор №1 декоратором №2. Но мне стало интересно, а возможно ли написать такой декоратор №2, который стеком декорирует функцию, которая уже задекорирована декоратором №2 так, что бы можно было перехватить параметры декоратора №1 декоратором №2, что бы например проверить параметр который был передан декоратору№1 и в случае его валидности, просто вернуть обратно декоратору№ 1 или как то в дальнейшем выполнить доп. логику, в случае если данные в параметре были не валидные. Проще говоря применить синтаксический сахар над функцией, на которой весит другой сахар с параметрами и вот эти параметры хочу провалидировать.
@Miron_Nicolaevich10 ай бұрын
Жалко что в тг нет чата или хотя бы комментариев к постам)
@PythonRussian10 ай бұрын
потому что ютуб комменты не предназначены для цитирования кода и больших обсуждений. Для этого есть форумы, один из них указан в ссылках канала
@alw-30522 жыл бұрын
Спасибо. Не сразу, но разобрался. Получается мы первой командой function = logger(summ): 1. Передаем адрес объекта-функции summ в функцию logger 2. Создаем объект-функцию function, которая ссылается на внутреннюю функцию wrapper И теперь по факту командой function(2, 3) мы вызываем функцию wrapper(2, 3), в которой уже инициализирован объект-функция summ. Но возник вопрос. А в чем преимущество декоратора от вот такого с виду более простого решения? ############################## def logger_new(func, a, b): print(f'{func.__name__} started_2') result = func(a,b) print(f'{func.__name__} finished_2') return result print(logger_new(summ, 2, 3)) ##############################
@PythonRussian2 жыл бұрын
Первое преимущество - встроенное средство языка, которое грех не использовать, второе и самое главное - придется импортировать и писать твой логгер везде, представь что сумм у нас в 15 модулях используется по коду. А декоратором 1 раз декорировали саму функцию и она везде работает одинаково.
@alw-30522 жыл бұрын
@@PythonRussian да, про дублирование я не додумался. Спасибо!
@kan43173 жыл бұрын
wrapper должен получать как *args так и **kwargs, иначе аргументы переданные по ключу не передадутся в оборочиваемую функцию, а в классе он должен еще и принимать self
@PythonRussian3 жыл бұрын
допустим, а еще параметризованый декоратор можно писать. А тема конкретно этого ролика какая?
@kan43173 жыл бұрын
@@PythonRussian, Ладно, но про kwards можнг было и тут упомянуть, боюсь многие посыпятся на этом
@Himera19838 ай бұрын
А почему оператор return невыходит использовать в If если она не внутри функции?
@PythonRussian8 ай бұрын
ретурн же это возврат, а если не из функции то откуда возврат?
@Himera19838 ай бұрын
@@PythonRussian согласен. Но в книге грокаем алгоритмы ретурн в блоке if и это условие не в блоке функции . И пишут запустите этот код. Так же есть тоже самое но уже в блоке функции.
@Himera19838 ай бұрын
@@PythonRussian книга грокаем алгоритмы в параграфе алгоритм дейкстры
@Himera19838 ай бұрын
@@PythonRussian большое спасибо что ответили .
@Himera19838 ай бұрын
@@PythonRussian согласен . Значит в книге ошибка и эта книга не та с которой можно чему то учиться ?
@Himera1983Ай бұрын
ты его написал а потом использовал. Но разве ты не видел на видео что никто не пишет декораторы а просто берут их откуда то и просто пишут сверху функции и никогда не обьясняют откуда их взяли и что они делают и где их посмотреть . Откуда !?
@PythonRussianАй бұрын
поменьше эмоций -побольше дела. Если бы ты внимательно посмотрел видео, то понял что декоратор это просто функция! А значит ее берут просто импортом, откуда -из библиотек и модулей. М ы тоже могли бы наш написанный декоратор в другом модуле импортировать и поставить сверху функции. Почитай что такое импорт
@Himera1983Ай бұрын
@@PythonRussian опять 25. Я знаю что эта функция от куда то ... Но никто ни говорит почему он ее ставит и что она делает. Не все же функции можно ка декоратор ставить добавив значек
@PythonRussianАй бұрын
@@Himera1983 не все, только такие, как показано в видео. Что она делает описано в документации по любой библиотеке. Ко мне какие претензии, задай вопрос тому, кто добавляет декораторы и не объясняет зачем
@СергейКаштанов-у2э10 ай бұрын
Без 100 грамм не разберешься.
@RAYDER9995 ай бұрын
😂😂
@andrey69515 ай бұрын
Алексей Леонов!
@randomcraft2345 Жыл бұрын
Честно, не очень понимаю идею декораторов через сахар. Без сахара понятно, у тебя есть область видимости, там тебе нужна немного другая сумма, там ты её и задекорировал, при этом вне этой области сумма старая. А вот с сахаром... так теперь сумма везде изменена, почему тогда сразу саму сумму не поменять?
@PythonRussian Жыл бұрын
для 1 функции и 1 правки возможно, а что если тебе нужно поменять 3 разные функции одинаково? ты полезешь в код всем 3 или сделаешь 1 декоратор?
@randomcraft2345 Жыл бұрын
@@PythonRussian спасибо, теперь стало намного яснее! И ещё большее спасибо за оперативный комментарий!
@rpuropu3 жыл бұрын
ВОпрос один мучает, подстать твоему каналу. МНого где слышу, что нагруженные части питоне, люди пишут на С++, и потом их интегрируют в код. Как это выглядит вообще? Это модуль скомпилированный? в питоне потом подключается через импорт или как? Что там за процедура вообще.. может где туториал есть поизучать? я между конспектами и кодингом отдыхаю изучая вот такие впоросы, что бы поинмать к чему меня может притянуть, и какие навыки пригодятся, а какие нет..
@PythonRussian3 жыл бұрын
понятия не имею, никогда не занимался, но в некоторых книгах есть раздел об этом, где показывают способ. По мне так это крайне редкая вещь в реальной работе.
@leonidpervak96243 жыл бұрын
Могу быть не прав, но такое, насколько я понимаю, можно сделать с Cython - cython.readthedocs.io/en/latest/src/userguide/wrapping_CPlusPlus.html
@dedovchemodanchik Жыл бұрын
Очень мелко. Не видно
@Himera1983Ай бұрын
все просто зациклились на роликах начала . Давайте уже примеры более сложные . много примеров использования циклов , вложеных и вашу м декораторов. не надо показывать что это такое и как их создавать. Покажите откуда вы берете их когда не создаете а просто пишете сверху функции не поясняя откуда и что зачем и почему
@PythonRussianАй бұрын
мы все в питоне или пишем сами или ИМПОРТИРУЕМ, все просто.