#46. Декораторы с параметрами. Сохранение свойств декорируемых функций | Python для начинающих

  Рет қаралды 46,464

selfedu

selfedu

2 жыл бұрын

Обучающий курс: stepik.org/course/100707
Создаем декораторы с параметрами. Пример использования и декорирования функций такими декораторами.
Telegram-канал: t.me/python_selfedu

Пікірлер: 120
@86Blind
@86Blind 2 жыл бұрын
Талант к преподаванию. Подача материала на высоте. Сергей, спасибо за уроки !!!! Здоровья !!
@hardlabor9412
@hardlabor9412 Жыл бұрын
База
@user-mz1rv4og9n
@user-mz1rv4og9n Ай бұрын
Ох, как же я вам благодарен. Раньше я никак не мог понять как вызывается функция второго уровня вложенности. Оказалось сам интерпретатор так запрограммирован.
@SpikeSatevis
@SpikeSatevis Жыл бұрын
Единственный урок который не понял вообще(
@kelavr8961
@kelavr8961 2 ай бұрын
Спасибо за урок!!
@user-rq3ss6vv8w
@user-rq3ss6vv8w 2 жыл бұрын
Просто вынос мозга
@CakesFly
@CakesFly 2 жыл бұрын
Просто великолепное объяснение! Благодарю, Сергей!
@hxxskyy3975
@hxxskyy3975 4 ай бұрын
Большое вам спасибо, благодаря вашим двум видео про декораторы наконец-то понял их устройство работы, великолепное объяснение
@igorkulibaba7287
@igorkulibaba7287 2 жыл бұрын
Сергей Вы очень хорошо объясняете. спасибо Вам!
@donfedor007
@donfedor007 2 жыл бұрын
Отпуск провожу не зря! Самообразование сила!
@Kappitoshca
@Kappitoshca 2 жыл бұрын
Ваш урок - решение моей задачи, благодарю Вас.
@ivanlino3747
@ivanlino3747 2 жыл бұрын
Спасибо за материал! Очень интересно!!!
@mr.paradox4370
@mr.paradox4370 7 ай бұрын
Отличный материал, подробно представленный!
@ksymbescenny8859
@ksymbescenny8859 Жыл бұрын
Удивляюсь, тому сколько людей пишет, что им все понятно, круто наверное посмотреть видос и сразу все понять, я 4 раз пересматриваю и пока трудно все связать. Как вы все так быстро разбираетесь?
@gpankov
@gpankov Жыл бұрын
с опытом придет...
@user-eo6bq6yi9l
@user-eo6bq6yi9l Жыл бұрын
Бро, я такой же))
@VGCor
@VGCor Жыл бұрын
Я смотрю уже с некоторым опытом разработки пет-проекта, чтобы узнать о пробелах в знаниях и заполнить их. Когда начинал, извращался как мог: гуглил, читал найденные статьи, кодварс, стэковерфлоу - хреновый путь. Лучше сначала пройти весь курс от корки до корки, желательно без пропусков тем, а уже потом делать всё что перечислил. Удачи.
@user-tp7uw5cl7n
@user-tp7uw5cl7n Жыл бұрын
присоединяюсь, всё это хорошо усвоится, если уже есть какой-то опыт, база в голове. На которую можно опереться. Если знания фрагментарные, могут возникнуть сложности. Ну и, конечно, чтоб разобраться, всегда ромогает самому всё это в IDE попробовать, повертеть, посмотреть какое поведение, что от чего зависит.
@alexandr8153
@alexandr8153 11 ай бұрын
Наверно уже не актуально, в общем: ты сам нарисуй схемы взаимодействия кода(со стрелочками как на видео). И напиши код из видео и повозись с ним.
@Elena-xq3gc
@Elena-xq3gc 7 ай бұрын
Спасибо, за доступное объяснение трудных тем, я уже отчаялась все это понять, а тут однокурсники порекомендовали ваши курсы. Надежда на то, что все-таки смогу постичь язык ожила).
@tbassir9076
@tbassir9076 Жыл бұрын
Как всегда респект! Да, эта тема сложная, придётся повторять ещё раз!
@alexandercherkashin3512
@alexandercherkashin3512 10 ай бұрын
автор, Вы просто божественен! Так здорово редко объясняет на русскоязычном ютубе! Сделайте пожалуйста курс по паттернам java, если возможно. С большим удовольствием послушаю также
@user-qz9xs1kl2t
@user-qz9xs1kl2t 5 ай бұрын
Для начинающих объяснять темы на примере синусов и косинусов прям вообще круть👍Вообще,нужно задействовать побольше какой-нибудь высшей математики,тригонометрии и квантовой физики в примерах чтоб легче усваивать было программирование новичкам, ну не тем что физмат окончили, другим новичкам.. А вообще автору спасибо, деньги я за просмотр не платил, а значит и возникать нефиг, в книгах которые покупал просто тоже частенько примеры замороченные, а потом найдешь где-нибудь попроще объяснение и такой, ляяя как так можно такую простую тему так усложнить..
@user-yo7qq4od2j
@user-yo7qq4od2j 3 ай бұрын
Прохожу сейчас платные курсы (у вас тоже Сергей) , но конкретно учусь на разработчика ВЕБ приложений. В общем хочу сказать, то, что лучше Вас никто еще не объяснял. Лесть - не круто, но это блин так! Это факт, а факт - штука упрямая. Даже я, 41-летний мужчина, начал что-то вспоминать про производные =)
@iliyanivanov6606
@iliyanivanov6606 2 жыл бұрын
Спосибо для хорошие объяснения!!
@andredru4278
@andredru4278 4 ай бұрын
Спасибо. Понял, что надо еще раз просмотреть тему с замыканиями.
@user-qj6tk5fw9p
@user-qj6tk5fw9p Жыл бұрын
огромное спасибо!, очень интрестно и полезно. хотя и довольно сложно по сравнению с начальными уроками)
@vladimirkulakov6126
@vladimirkulakov6126 2 жыл бұрын
Сергей отлично преподаёт! Всем рекомендую его курс и отдельное спасибо!
@michailpty6302
@michailpty6302 7 ай бұрын
Очень доступно объясняете
@aleksandr_nokhrin
@aleksandr_nokhrin Жыл бұрын
Даже не знаю, что круче - рекурсия или декоратор декоратора ) Спасибо за урок!
@mingboevnurullo
@mingboevnurullo 8 ай бұрын
Legend, thanks, you helped me a lot
@sergeyf7459
@sergeyf7459 2 жыл бұрын
Отлично)
@Neural.Academy
@Neural.Academy 2 жыл бұрын
Как же ты хорош
@leshen_show
@leshen_show 2 жыл бұрын
чисто ради интереса вопрос - для сложной темы обязательно было брать пример с синусом, производной и тд? И так сложно, а еще математика 11 класса подъехала...
@playt_pythonlearn
@playt_pythonlearn 2 жыл бұрын
соглашусь но как пример пойдет хе
@romanvishnyakov6835
@romanvishnyakov6835 Жыл бұрын
Ага... только начинаешь, что-то понимать.... хрямс! На те синусы! какой-то там dx, который можно регулировать)🤣🤣
@biglakecom
@biglakecom 10 ай бұрын
камон, вам самим не нужно считать. За вас это сделает калькулятор
@DinLiren
@DinLiren Жыл бұрын
Функция для нахождения синуса вычисляет производную через декаратор
@johnmazepa
@johnmazepa Жыл бұрын
аааааааа, ну теперь-то все понятно. жаль только не понятно все, что после слова "нахождения" и перед "через декоратор")))
@vladdiachenko8529
@vladdiachenko8529 Жыл бұрын
Сергей хочу просто поблагодарить за ваш труд! Я прошол Ваш курс на степике(отдельный респект курсу) и спустя пол года пересмтриваю многие видео и такой - Вау так тут еще и так можно!))) СПАСИБО!!))
@gayratsaidakhmedov5451
@gayratsaidakhmedov5451 6 ай бұрын
спасибо
@scorpionevil7778
@scorpionevil7778 2 жыл бұрын
Это тему понял смутно.
@alexanderivlev8458
@alexanderivlev8458 10 ай бұрын
Очень хотелось бы увидеть урок с разбором декорирования декораторов
@johnmazepa
@johnmazepa Жыл бұрын
пока смотрятся как какие-то дикие костыли для непонятных целей все эти телодвижения: [оборачивание в три слоя функций] [чтоб передать параметр декоратору] [маскировка атрибутов обертки через подключенные модули] [чтоб функция не выглядела, будто её обернули в три слоя функций] [не забыть указатель @декоратор над функцией] [чтоб прикрутить всю вышеизложенную громоздкую конструкцию к конкретной функции] но судя по разговором знающих парней, эта тема важная. Поэтому, пока стоит эту дичь тупо вызубрить без особого понимания и ждать, что в дальнейшем процессе обучения или на работе как-то объяснят целесообразность использования декораторов.
@user-ez4ni5ce5d
@user-ez4ni5ce5d 2 жыл бұрын
Как мне об это не сломать мозг? 😭 Надо работать над собой.
@playt_pythonlearn
@playt_pythonlearn 2 жыл бұрын
внимательно посмотри, мне помогло, и быстро поймешь и скажешь что изи
@vladimirkulakov8667
@vladimirkulakov8667 2 жыл бұрын
а декораторы оказались не так уж и страшны) главное замыкание функций пройти с Сергеем!
@playt_pythonlearn
@playt_pythonlearn 2 жыл бұрын
это вообще каеф, если внимательно посмотреть то ничего сложного нет, главное логика и внимательность
@jamjam3337
@jamjam3337 Жыл бұрын
Спасибо!👏👻
@palyura1162
@palyura1162 2 жыл бұрын
5:38 цитата: Запрограммированое действие. Кто не знаком тот не поймет почему именно так. Об этом столило подродней или дать ссылку или дать четкое название как это действие называеться. Я с таким сталкивался попробую найти название такой ситуации.
@Keshtiman
@Keshtiman 2 жыл бұрын
Наверное, самый сложный урок из тех, которые были
@Developer_python_
@Developer_python_ Жыл бұрын
Nice))))))
@VGCor
@VGCor Жыл бұрын
Отдельное спасибо за декоратор wraps! Остался только один вопрос. Если нужно использовать и декорированную функцию и исходную функцию без декорирования, как лучше поступить? Приходит только мысль о присвоении исходной функции дополнительного псевдонима через ещё одну переменную.
@selfedu_rus
@selfedu_rus Жыл бұрын
В этом случае придется применять декоратор не через оператор @, а напрямую, присваивая результат декорации другой переменной. Тогда исходная функция останется без изменений.
@VGCor
@VGCor Жыл бұрын
@@selfedu_rus так и думал. Спасибо за быстрый ответ!
@ibrahimoglu
@ibrahimoglu 2 жыл бұрын
👍
@impellergimpeller5133
@impellergimpeller5133 2 жыл бұрын
👍👍👍👍👍
@skiffsolo9419
@skiffsolo9419 2 жыл бұрын
Пара вопросов. 1. Разве не проще использовать стандартный метод декорирования вместо @? То есть def func_decor(func, x): и потом ниже sin_df = func_decor(func, 0.0001). Это же позволит создать несколько вариантов, например для вычисления производной с разной степенью точности и избавит от одного уровня вложенности. 2. Разве не корректнее добавлять описание, что функция вычисляет производную, именно в декоратор? Ведь именно декоратор добавляет функционал вычисления производной, а декорируемая функция вычисляет sin. Разве такой подход не вносит путаницу при чтении кода? Я вижу код который вычисляет синус, но в описании написано, что это производная.
@skiffsolo9419
@skiffsolo9419 2 жыл бұрын
Вот такие две инструкции задают точное описание wrapper. wrapper.__name__ = f'der_{func.__name__}_with_{dx}' wrapper.__doc__ = f'Вычисляет производную {func.__name__} при dx = {dx}' На практике так не делают?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Смотря, что вам нужно. Делают и с функцией и с оператором @. Но чаще вижу @, т.к. это хорошо визуально выделяет декоратор, да и записать проще, чем через функцию (на мой взгляд). Если же одну и ту же функцию нужно декорировать разными декораторами, то да, второй подход через функцию-декоратор.
@user-zn8mt1wh9r
@user-zn8mt1wh9r Жыл бұрын
Ребята, которые пишут, что сложно. Не обращайте внимание на сложную формулу производной функции, смотрите только на синтаксис языка и на алгоритм, тогда всё будет очень просто.
@johnmazepa
@johnmazepa Жыл бұрын
тяжело заставить мозг игнорировать и не пытаться разобраться как работает код между объявлением функции и return-ом, но мы стараемся)))
@eugenedukatta9355
@eugenedukatta9355 8 ай бұрын
Так вычисление производной здесь самое простое во всем видосе. Кстати если вычислять производную по формуле (func(x+dx/2) - func(x-dx/2)) / dx точность вычисления возрастает сразу на несколько порядков 8))
@user-gf7fr8qw2e
@user-gf7fr8qw2e 2 жыл бұрын
сложная тема этот декоратор сразу и не вкатишся
@user-ni4sq9td6l
@user-ni4sq9td6l 2 жыл бұрын
Спасибо огромное за то что ты всё это делаешь. Всё ясно и понятно объясняешь. Подскажи вроде следуя логики области видимости переменных должно быть следующее: def cache(func): cach = {} count = 0 def wrapper(*args, ** kwargs): if count == 3: … Этот код выводит ошибку из виде понятно почему можно починить nonlocal, а вот такое: def cache(func): local = { 'cach': {}, 'count': 0 def wrapper(*args, ** kwargs): if local['count'] == 3: … Ошибку не выдаёт!!! Почему?! В чем разница под капотом?!
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Вы, наверное, внутри функции wrapper меняете count, например, count += 1 Как только идет оператор = он создает переменную в текущей области видимости, если ее еще нет (даже если она есть во внешней области), поэтому nonlocal необходим в 1-м случае. Во втором, вы обращаетесь к словарю, но меняете значение его ключа, то есть, новый словарь, естественно, не создается, а значение связывается с нужным ключом словаря. Поэтому при словаре будет работать и без nonlocal. Как то так )
@user-ni4sq9td6l
@user-ni4sq9td6l 2 жыл бұрын
@@selfedu_rus супер я так и думал ! То есть ту очень похожа ситуация на константы объекты в JS которые внутри можно изменять а само имя присвоить чему то другому нет) супер спасибо огромное за канал и быстрый обратный фидбэк!!!) лучший канал в русском сегменте по программированию без преувеличения!!!🤝
@Insidepointg
@Insidepointg Жыл бұрын
4:19 скажи пожалуйста, какими кнопками ты так ловко табулировал внутренние функции, давно ищу это , спасибо!
@xev1882
@xev1882 Жыл бұрын
не поверишь - TAB (или shift+TAB влево если)
@Insidepointg
@Insidepointg Жыл бұрын
Увы, не поверю. Такая комбинация клавиш не подходит. Пересмотри внимательно момент. У него курслр на внешней функции, а табнулась вся внутренняя вместо с телом
@xev1882
@xev1882 Жыл бұрын
@@Insidepointg да, ты прав. Полезная фича. Я тоже не нашел как так делать
@qryak
@qryak 10 ай бұрын
не знаю нужно ли это спустя 3 месяца, короче просто выделяешь всё что нужно табулировать и нажимаешь таб, на видео автор просто обрезал этот момент
@eugenedukatta9355
@eugenedukatta9355 8 ай бұрын
@@qryak ага, ТАВ работает, как сдвинуть обратно влево? shift+TAB также вправо сдвигает в IDLE
@ivanbonadykov9624
@ivanbonadykov9624 2 жыл бұрын
Здраствуйте, Сергей, какие темы математики надо знать в олимпиадном программировании?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Я как то далек от этой темы, не скажу
@Taron8117
@Taron8117 Жыл бұрын
@@selfedu_rus добрый день.пишу здесь чтобы вы увидели мой вопрос. Вопрос такой, мы когда обернули наш декоратор в декоратор где у нас параметр dx, после этого параметр х в wrapper же не нужен уже? И в res в вычислениях. Только dx остаётся . Верно ?
@selfedu_rus
@selfedu_rus Жыл бұрын
@@Taron8117 Мы вызываем декорируемую функцию: df = sin_df(math.pi/3) здесь math.pi/3 - это и есть x. Поэтому он нужен.
@Taron8117
@Taron8117 Жыл бұрын
@@selfedu_rus вроде понял. Спасибо.
@kakandaville
@kakandaville 2 жыл бұрын
Класман!
@biglakecom
@biglakecom 10 ай бұрын
А при декорировании функции, если dx не определить в скобках, то будет выходить ошибка. Как быть? Ведь не всегда нужно, чтобы параметр был определен
@selfedu_rus
@selfedu_rus 10 ай бұрын
в декораторе dx прописан со значением по умолчанию?
@user-ji6df1ei2c
@user-ji6df1ei2c Жыл бұрын
У меня вопрос. Вот вы говорите декораторы не надо вызывать скобками(). Но когда дело доходит до свойств, то приходится декоратор со свойствами именно что вызывать (). Иначе значение по умолчанию не подставляется и возвращается ссылка на функцию. А если мы оставим пустые (), то подставляется значение по умолчанию. Я правильно понимаю? Или что-то не то делаю?
@selfedu_rus
@selfedu_rus Жыл бұрын
не совсем понял, вам это быстро и подробно в телеграм-канале расскажут )
@vladmaltsev3238
@vladmaltsev3238 2 жыл бұрын
Если на 11-ой минуте убрать в 19 строке (dx=0.01), то ошибок не будет, но декоратор не срабатывает Подскажите, пожалуйста, как по невнимательности не попасть в ловушку?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Не прописывать формальный параметр, т.е. dx без значения по умолчанию
@vladmaltsev3238
@vladmaltsev3238 2 жыл бұрын
@@selfedu_rus Спасибо большое
@user-fz1yu2qv8f
@user-fz1yu2qv8f Жыл бұрын
7:54
@johnmazepa
@johnmazepa Жыл бұрын
мне кажется кто-то забыл про слово "для начинающих" в названии своего курса?))) не думаю, что "производные от функции" - самый просто и наглядный пример для объяснения работы декораторов, облегчающий понимание темы для любого "начинающего" вайтишника.
@awwlik
@awwlik 6 ай бұрын
09:10 разве правильно менять приватные переменные?
@selfedu_rus
@selfedu_rus 6 ай бұрын
переменные __name__ - это не приватные, а магические (два последних подчеркивания превращают их в магические)
@awwlik
@awwlik 6 ай бұрын
@@selfedu_rus а если переменная имеет название __value, то она тогда приватная?
@selfedu_rus
@selfedu_rus 6 ай бұрын
@@awwlikда
@user-yp9ix4wl1m
@user-yp9ix4wl1m Жыл бұрын
Это видео нужно продекорировать лайком
@als-creator
@als-creator 2 жыл бұрын
Сколько вообще видео будет в курсе?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
65
@user-ji6df1ei2c
@user-ji6df1ei2c Жыл бұрын
Я как человек не помнящий уже что такое синусы и который не понимает что за производные функции ... Короче я вообще не понимаю что мы тут хотим получить и что берём. Это очень плохие примеры... Остальное по программированию понятно. Спасибо) Как сказал один чел на Степике: программисты сумасшедшие люди, я уже тоже близок к сумасшествию, но не к программированию...
@PavelNebo
@PavelNebo 11 ай бұрын
а синусы не причём, это просто абстрактный пример, речь идёт о декораторах, хотя конечно от этого не легче :D
@ney107-iz6xl
@ney107-iz6xl 8 ай бұрын
df = sin_df(math.pi/3) здесь math.pi/3 - это и есть x Sin_df это же и 0,001 и косинус Я понял что к косинусу мы применяли Pi/3 как аргументы но 0,001 что тут делает мы на него умножаем или что? Заранее спасибо
@Octieve_San
@Octieve_San Жыл бұрын
жесть
@palyura1162
@palyura1162 2 жыл бұрын
3:39 уже не сможем. А до этого что могли? Покрайней мере не показано в видио что в первом варианте можно было прописать параметр в обвертне дикоратора.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Имеете в виду прописать еще один параметр после первого параметра func? Если так, то это не совсем то.
@PavelNebo
@PavelNebo 11 ай бұрын
дикоратор это обёртка делающая функцию более дикой ? :D
@xev1882
@xev1882 Жыл бұрын
не ясно как интерпретатор понимает, что в func надо передать sin_df
@user-zy5jq3xu8y
@user-zy5jq3xu8y Жыл бұрын
ну зачем использовать синусы, производные и другое?? можно же просто x + 2 или x * 2. а то эти синусы и т.д. очень усложняют и отвлекают от понятия декораторов. сидишь и думаешь что он несет???? какие производные? синусы? и чего там еще... результат хочется видеть 2 или 5 или 6, а не 0.1234567890912345678798090123234546658678 всё таки слова учат с букваря, а не с войны и мир.
@PavelNebo
@PavelNebo 11 ай бұрын
кстати говоря это бы не сделало понятнее саму тему декораторов. потому что функция то может быть любая внутри. Мне больше не понятно как через декоратор декоратора внутрь попадает и функция и параметр, Сергей просто сказал "это происходит автоматически" , и это ничего не объяснило, на него это не похоже.. обычно разжовывает.
@DarkRootChannel
@DarkRootChannel Жыл бұрын
Сразу дизлайк за сложный пример с какими-то синусами, про которые я ничего не помню. Спасибо большое, специально надо было усложнить
@torri11
@torri11 Жыл бұрын
Слишком запутано и заумно...можно по проще? смотрел кучу видео где про декор об.ясняли на много проще и понятней.
@Dicerec56
@Dicerec56 Ай бұрын
Мда...после такого урока и учить дальше не хочется...нудятина
@ney107-iz6xl
@ney107-iz6xl 8 ай бұрын
Спасибо каждую тему пишу в заметки своим словами пишу описание каждой картинке За 3 часа разобрал все идеально И всем советую так каждую тему в заметки или в тетрадь Спасибо за урок Есть один вопрос From functool import @Wraps Именно так и нужно ли писать @wraps(func) писать именно над той функцией с которой хочешь сделать описание и имя ?
@M2164532
@M2164532 2 жыл бұрын
Уважаемый, Сергей. Не знаю, что заставило Вас так "экономить" на именах (вероятно, существует какое-то тайное соглашение среди программистов об экономии букв), но то, что произошло на 6:40 видео явно не сделало объяснение проще. Пришлось повозиться с этим моментом, чтобы понять как, но так и не понять зачем... Поэтому позволю себе некоторый комментарий к Вашему коду: def sin_df(x): #здесь мы оределяем функцию с именем sin_df return math.sin(x) f = df_decorator(dx=0.001) # вызываем функцию df_decorator с параметром dx # Эта функция возвращает func_decorator (функцию) мы присваиваем имени f ссылку # на эту функцию. Соответственно f теперь имя для вызываемой функции. print(f.__name__) # используйте эту строчку, чтобы увидеть на что ссылается имя f sin_df = f(sin_df) # вызываем func_decorator через имя f и передаем sin_df в # качестве требуемого параметра func. Функция возвращает wrapper (функцию) и мы # присваиваем ссылку на нее имени (ВНИМАНИЕ!) sin_df. До этого момента sin_df было # определено как имя другой функции, которую мы декорируем. print(sin_df.__name__) # используйте эту строчку, чтобы увидеть на что ссылается имя sin_df df = sin_df(math.pi / 3) # вызываем функцию wrapper по имени sin_df, которой # передаем обязательный параметр x. И ссылку на результат присваиваем имени df. print(df)
@eugenedukatta9355
@eugenedukatta9355 8 ай бұрын
кто-нибудь это читает чтобы сломать себе глаза и мозг?
@s0042
@s0042 Жыл бұрын
мой мозг вскипел! ни фига не запомнил ((( с этими вложениями просто каша в голове (((
@PavelNebo
@PavelNebo 11 ай бұрын
Видимо сам пример не совсем удачный, не понятно зачем всё это нужно. Ведь мы можем просто сделать функцию с двумя параметрами (x, dx) и всё внутри посчитать, передав нужные параметры... т.е. здесь декоратор ничего не даёт.
@selfedu_rus
@selfedu_rus 11 ай бұрын
Но это будет уже другая функция. Смысл в том, что декоратор скрывает в себе некторый полезный функционал, которым мы хотим наделить функцию, поэтому его и прописываем для нее. Декораторы повсеместно используются во Flask, Django, Tensorflow, например.
@PavelNebo
@PavelNebo 11 ай бұрын
@@selfedu_rus Да, конечно декораторы полезная вещь. Я только что написал небольшой интернет магазин на Джанго для портфолио :) (спасибо вашим урокам, сейчас пересматриваю, чтобы переосмыслить некоторые вещи) Но, используя фреймворк, ты просто берешь готовый декоратор и всё, не важно как он устроен. Я к тому что для обучения нужен пример, когда декоратор необходим, т.е. более реальный, что-ли, пример.
@user-rq3ss6vv8w
@user-rq3ss6vv8w 2 жыл бұрын
Просто вынос мозга
@fuck_off_
@fuck_off_ 2 жыл бұрын
Путь тяжел. А выше Сергей ещё написал что можно к одной функции много декораторов применить(-_-) Норм. Весело)
@illiukhin
@illiukhin 2 жыл бұрын
спасибо
Декоратор с параметрами
19:39
Python Russian
Рет қаралды 8 М.
The child was abused by the clown#Short #Officer Rabbit #angel
00:55
兔子警官
Рет қаралды 18 МЛН
когда повзрослела // EVA mash
00:40
EVA mash
Рет қаралды 3 МЛН
Increíble final 😱
00:37
Juan De Dios Pantoja 2
Рет қаралды 111 МЛН
Задача из Собеседования на 160,000 Евро в Год
13:27
Саша Лукин
Рет қаралды 1,1 МЛН
Указатели и двумерные массивы
8:49
Оксана Еськова. Основы программирования
Рет қаралды 301
Python Decorators: The Complete Guide
27:59
ArjanCodes
Рет қаралды 146 М.
ТОП 5 Ошибок в написании функций Python
12:46
Как устроены декораторы в python?
12:18
Хитрый питон
Рет қаралды 14 М.
Декораторы в Python
19:45
Программирование 2.0
Рет қаралды 13 М.
😱 Как стать программистом с нуля? Без курсов самому.
24:43
Хауди Хо™ - Просто о мире IT!
Рет қаралды 327 М.