Тёмный

Декораторы в Python Часть 1. Decorator Python 

egoroff_channel
Подписаться 138 тыс.
Просмотров 118 тыс.
50% 1

🔥🔥🔥 Инди-курс по Python 🔥🔥🔥
stepik.org/course/63085/promo
👉👉👉 Свой вопрос по курсу можешь задать в чате
t.me/+SlnNhAO7caBlNDM6
👉👉👉 Также подписывайся на мой телеграмм-канал
t.me/python_egoroff
Подробнее об урок
egoroffartem.pythonanywhere.co...
Замыкания в Python. Closure Python
• Замыкания в Python. Cl...
Замыкания в Python.Часть 2
• Замыкания в Python Час...
*args и **kwargs Python. Передача аргументов в функцию
• 40 *args и **kwargs Py...
stepik.org/course/63085/promo
Курс на степике
В данном уроке мы вспомним о замыканиях и на их основе научимся создавать декораторы.
Декоратор - это функция, которая в качестве аргумента принимает другую функцию и возвращает функцию-замыкание. Декораторы нужны для расширения функционала переданной функции за счет обертки в замыкании
Все видео этого курса можете найти на сайте
egoroffartem.pythonanywhere.co...
или в Вк
videos-177962775?secti...
Если кому нужна помощь, предлагаю индивидуальные занятия. Подробнее пишите в личку в вк
artem_egoroff
python.study
В данном группе можете найти информацию о новых видео и задать вопросы

Опубликовано:

 

28 апр 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 161   
@egoroffchannel
@egoroffchannel 2 дня назад
🫵 Теория без практики - ничто, поэтому 👇 🐍 stepik.org/course/63085/promo 👉 специально для тебя создал бесплатный топовый курс по Python 👉 В нем тебя ждет: 📗 более 400 практических заданий на программирование 📗 более 250 тестовых заданий на проверку материала 📗 десятки часов видеоматерилов по теории 📗 видеоразборы решения заданий 📗 текстовые материалы по урокам, примеры кода 📗 доступ к закрытому чату с дружественной обстановкой 📗 сертификат в случае успешного прохождения курса
@orazovdidar
@orazovdidar Месяц назад
Очень понятное и доступное объяснение. Благодарю Артем!
@user-bz4bo6ol2o
@user-bz4bo6ol2o 2 года назад
Выглядит так, как будто один топовый кодер написал мегакачественный код и уволился, набрали кодеров попроще, которые боялись править этот прекрасный код и просто начали лепить вокруг него костыли и назвали эту штуку - декоратор )))
@vladislavbulanov625
@vladislavbulanov625 2 года назад
объяснение лучше того что в видео
@1nparad1sepwnz79
@1nparad1sepwnz79 Год назад
хахахаахахахахахаха
@user-kg9du4ii9w
@user-kg9du4ii9w 9 месяцев назад
абсолютно поддерживаю. если выкинуть из кода все эти дурацкие замыкания и обертывания - код работает так же, его меньше, читабельнее. сколько ни пытаюсь понять ЗАЧЕМ декораторы - нигде не могу найти ответ. везде пишут как они работают, но НИКТО не написал - зачем они.
@user-ib9uw3he1y
@user-ib9uw3he1y 8 месяцев назад
@@user-kg9du4ii9w не знаю, будет ли актуально, но попробую объяснить В реальной разработке может быть тысячи строк кода, сотни функций и куча модулей и директорий. Допустим, логика вашего проекта построена так, что в одном из модулей вам понадобилось использовать функцию, которую вы уже написали, но с каким-то добавочным функционалом. (Допустим, вам нужно добавить какое-то простенькое вычисление или вывести что-нибудь на экран) И вот вместо того, чтобы копировать функцию из прошлого модуля, вставлять её в новый модуль, изменять её название и добавлять этот функционал, проще написать декоратор :) Вы просто импортируете старую функцию, вешаете на неё декоратор и вуаля, готово. Можно использовать получившуюся функцию почти с тем же функционалом, не тронув старую и ничего не поломав в уже написанном коде
@Nina-hy4ql
@Nina-hy4ql 3 месяца назад
@@user-kg9du4ii9w Говорят же, для расширения функционала функции. Когда вам не нужно менять декорируемую функцию полностью, но в конкретном месте нужно несколько изменить ее поведение.
@martincatus
@martincatus Год назад
bye: Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которое я испытал. 😁
@osvab000
@osvab000 4 года назад
Спасибо огромное - хоть начал разбираться, что такое декораторы, а то вначале казалось лес непроходимый.
@k1ntoho
@k1ntoho 4 года назад
Нужная вещь. Спасибо, что рассказали
@user-wk9dl9lu2t
@user-wk9dl9lu2t Год назад
Я декораторы начал изучать после того, как захотел написать телеграм-бот, и тут Остапа понесло... >>> Что такое декораторы >>> что такое замыкание >>> что такое вложенные функции....что такое глобальные, локальные и иже с ними переменные.... Как будто квесты в игре проходишь, берешь один квест, по дороге еще 10 штук набираешь))) Зато тренируешься, вспоминаешь основы, закрепляешь их и т.д.
@aace6333
@aace6333 27 дней назад
+++ где-то год назад уже смотрел весь этот курс, пришлось напоминать себе что такое замыкание
@luv7365
@luv7365 Год назад
Очень доступно и понятно. Было несколько заходов разобраться в этой теме, благодаря тебе стало яснее. Огромное спасибо!)
@1nparad1sepwnz79
@1nparad1sepwnz79 Год назад
Полностью согласен) я только с 4 захода разобрался что такое декараторы, просматривая 4 видео по 4 раза начиная со вложенных функций)
@user-rw2ig6nb5l
@user-rw2ig6nb5l 3 года назад
Большое спасибо, Артем.
@user-ww5fe4on6y
@user-ww5fe4on6y 2 года назад
Начало ролика - суперпонятное, спасибо. За первые 3 минуты 25 секунд - респект.
@user-bq7hh5gr5f
@user-bq7hh5gr5f Год назад
Найбільш зрозумілий урок з тих що я подивився, дякую.
@user-ee1lx1pe7n
@user-ee1lx1pe7n 3 года назад
Прекрасно все объяснил! Большое спасибо))))))
@AnnaIsHere
@AnnaIsHere 2 года назад
Это было божественное объяснение. Структурированно, не слишком быстро, советы про *args и *kwargs. Благодарю.
@crazyvalyochek516
@crazyvalyochek516 10 месяцев назад
**
@user-xl6gp9em1b
@user-xl6gp9em1b 7 месяцев назад
Не переигрывай пельмень
@Toksi86
@Toksi86 3 года назад
Очень доступно. Спасибо
@ES-ng3el
@ES-ng3el 7 месяцев назад
Все понятно и доходчиво. Спасибо.
@user-bj9hd1bc4j
@user-bj9hd1bc4j Год назад
Спасибо, это очень качественное объяснение! Учу python по книге, но рекурсивные функции, замыкания и декораторы там были описаны таким сложным языком. Пришлось искать материал по этим темам в интернете. Так я нашёл ваш плейлист по python, и это реально крутой плейлист!)
@Ruslan501
@Ruslan501 2 года назад
Артем, спасибо большое!
@Taridonov
@Taridonov 3 года назад
жирный лайк, спасибо большое Вам.
@user-nu6jv9qp7c
@user-nu6jv9qp7c Год назад
Я кажется понел, благодарю!
@user-to9qz4ks4j
@user-to9qz4ks4j Год назад
О, какая крутая штука ! Спасибо большое за доступное объяснение!
@shipovalovv
@shipovalovv 6 месяцев назад
наконец то, хоть кто-то доступно на пальцах объяснил 👍
@alibekjusupov9577
@alibekjusupov9577 3 года назад
Спасибо за видео!
@orthodox_channel
@orthodox_channel Год назад
наконец все стало понятно
@autostyle8170
@autostyle8170 Год назад
Спасибо за доступ ко всем материалам, после окончания курса по питону, буду брать ООП
@user-wk9dl9lu2t
@user-wk9dl9lu2t Год назад
Твои объяснения для меня пока что лучшие, я их понимаю (может и не с первого раза), но со второго точно)))
@victoriacare6156
@victoriacare6156 4 года назад
а так спасибо все равно))) понимаю что вас нужно поддерживать!
@user-ww5fe4on6y
@user-ww5fe4on6y 2 года назад
весь ролик очень понятный
@kolobroadgh8532
@kolobroadgh8532 2 года назад
Очень круто и информативно) Подача информации просто невероятна)
@user-hn7gb9ej9d
@user-hn7gb9ej9d 4 года назад
Спасибо!
@kotart3938
@kotart3938 4 месяца назад
Я на платном курсе обучаюсь и без видосов в ютубе никак. Сейчас происходит то, что я с помощью твоих видео лучше все усваиваю. Либо это до меня доходит со второго раза (типа шлифую те знания, что получил на курсе), либо ты очень хорошо все раскладываешь) Но в любом случае, комментарий для всех: Чтобы понять тему с декораторами, советую начать с просмотра видео "Вложенные функции" и поочереди идти по каждому видосу. Сейчас я наконец-то все понял) Спасибо)
@VladimirGavr
@VladimirGavr 2 года назад
Спасибо, тебе, дружище!!)
@user-xr2cz1ky6s
@user-xr2cz1ky6s Год назад
Тёма, ты лучший
@user-ck3bl1hy2c
@user-ck3bl1hy2c Год назад
Купи мир.... Такой интересный призыв)))
@nicasmirnovaa
@nicasmirnovaa Год назад
спасибо за видео
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
Супер подача! По качеству нахожу сходство c Ильёй Кантором, я у него Git изучал по роликам
@laikaboss9047
@laikaboss9047 4 года назад
Ты вообще красава! Все понятно и информативно) Продолжай в том же духе и не забрасывай канал))
@velomatica
@velomatica 4 года назад
Обязательно оформлю подписку на тебя. У меня по питону только ты и Олег Молчанов в приоритетах
@RomanZverev-yc5qc
@RomanZverev-yc5qc 2 года назад
@Askhat Moldakasym тоже очень годный канал)
@schmoopiegrob8758
@schmoopiegrob8758 2 года назад
как успехи спустя год?
@velomatica
@velomatica 2 года назад
@@schmoopiegrob8758 blog на flask второй после молчанова
@Lottivozlar_community
@Lottivozlar_community Год назад
до этого видео я не понял что такое дикораторы, спасибо вам большое 🙂
@magiclake9454
@magiclake9454 3 года назад
твоё видео помогло мне, другие не помогали. Я так и не вынимал суть декораторов до твоего видео. Спасибо большое! Продолжай в том же духе! :) Подписался и разослал друзьям.
@galinaoliver5624
@galinaoliver5624 Год назад
Круууто!
@user-ih9wz3vh7y
@user-ih9wz3vh7y 2 года назад
Почему нельзя сказать что декоратор выставляет перед функцией в него входящей как раз таки декоративное сообщение или элемент, и так же может сделать после результата функции в нём? Понапишут своих высокоинтеллектуальных текстов, а потом переводи на человеческий по пол часа.
@Dm-if3vl
@Dm-if3vl 3 года назад
Спасибо
@maskanews
@maskanews 4 года назад
Офигенно. Реально каждое действие объясняете и всё максимально понятно) Подписка
@user-fw7dn9ib1j
@user-fw7dn9ib1j 3 года назад
Что? Каждое действие ?Сам себя похвалил и наоайкал. "Чтобы понимать декораторы нужно знать замыкание, вот эта функция будет замыканием..." ништяк обьяснюха...продолжу а вот это декоратор не хуже обьяснил правда?
@kadencode5347
@kadencode5347 2 года назад
@@user-fw7dn9ib1j чел, надо было курс смотреть этот... он об замыканиях говорил...
@LimarDeWills
@LimarDeWills 4 года назад
Спасибо Вам за уроки
@ankhmarcius8331
@ankhmarcius8331 4 года назад
наконец то я всё понял
@user-hi1bw5gb3r
@user-hi1bw5gb3r Год назад
Что-то тяжко даётся эта тема. Надеюсь на практике станет понятнее.
@user-ss3kn9sc8m
@user-ss3kn9sc8m Год назад
Хороший комментарий для Артёма
@m1x412
@m1x412 3 года назад
Спасибо за урок. PS. Купить Мир.
@ameno095
@ameno095 4 года назад
Super. Spasibo ogromnoe!
@TheReasterTR3
@TheReasterTR3 4 года назад
Как всегда все офигенно)
@duck0154
@duck0154 3 года назад
*ТоП* !
@user-bn4kd5iw8n
@user-bn4kd5iw8n 3 месяца назад
Из всех лекций Артёма, эту я так и не понял, от слова "совсем". Постоянные перескоки с одной функции на другую, и для чего это нужно в коде, так и осталось большой загадкой!
@user-ke4ss2bg9k
@user-ke4ss2bg9k 4 года назад
О наконец классный контент поддерживаю автора
@user-fu8vp1he5z
@user-fu8vp1he5z Год назад
Т.е. оригинальную функцию без обертки уже не вызвать в данном случае?
@alexeysirota1865
@alexeysirota1865 3 года назад
Огромнейшее спасибо, самое доходчивое обьяснение декораторов
@ozen950
@ozen950 Год назад
Точно! Если, конечно, других не слышал.
@brutsmart
@brutsmart 11 месяцев назад
топчик
@ildarEGE
@ildarEGE 2 года назад
Спасибо) Очень просто объяснил
@user-cv3sc6qi2e
@user-cv3sc6qi2e 4 года назад
А твой преподаватель был не случайно Тимофей Хирьянов?😏
@ruman3726
@ruman3726 3 года назад
нет
@goalkeeperpro6516
@goalkeeperpro6516 4 года назад
Добрый день У меня давно был вопрос По какой формуле можно посчитать интеграл и интегральные числа в python?
@kandreyk9159
@kandreyk9159 4 года назад
from sympy import * var('x') integrate(sin(x), x)
@vladimirkuchin1677
@vladimirkuchin1677 11 месяцев назад
Пакеты математические, например, SciPy, SymPy поддерживают такие вычисления. Плюс есть численные методы, позволяющие вычислять интегралы (метод Симпсона, 3/8, трапеций и т.д.)
@jamjam3337
@jamjam3337 Год назад
👍
@apocalypsesoon4828
@apocalypsesoon4828 10 месяцев назад
Одно из лучших объяснений , по книгам и по лекциям не очень понятно
@Strongflight
@Strongflight 2 года назад
Поясните пожалуйста (ролик 3:02): Когда объявляем, что say будет вызывать функцию декоратора, мы же просто объявляем переменную say, а не пере объявляем функцию, какой смысл в этом?
@poliklopik6774
@poliklopik6774 Год назад
Не знаю, актуален ли еще вопрос, но на всякий постараюсь пояснить. Все в питоне является объектами, которым можно присвоить имя. Так любая функция является объектом с именем (то, что идет после def). В 16 строке его кода мы просто говорим, что теперь в переменной say будет лежать не старая функция, которая просто пишет привет мир, а там лежит результат работы decorator, то бишь ссылка на функцию inner, которая использует в своем функционале «старую» функцию say.
@user-zt1zh1bp2d
@user-zt1zh1bp2d 2 года назад
Привет. Мне нужно разработать декоратор to_lower, который будет переводить все строковые аргументы (как именованные, так и не именованные) декорируемой функции в нижний регистр. Мой код def to_lower(func): def to_lower(func): def wrapper(*args, **kwargs): func(*args, **kwargs) return func(*args, **kwargs).lower() return wrapper При это Выводиться ошибка 'NoneType' object has no attribute 'lower'. В чем ошибка. Еще просьба сообщить если видео по генераторам. Заранее спасибо.
@user-rn3nr4tc7b
@user-rn3nr4tc7b 2 года назад
Что делать, если превышена глубина вложенности? Речь идет о фрагменте кода на 4:05, подскажите кто столкнулся тоже
@bambimbambas
@bambimbambas 3 года назад
Я до сих пор не понимаю больше половины материала, но понял, хоть что-то, когда поигрался с кодом тут: www.pythontutor.com/visualize.html#mode=edit Ещё вот таким кодом: def decorator(func): def inner(string): print('sub 1') func() print('sub 3') def catch(): string() return catch return inner def say(): print('sub 2') decorator(say)(say)()
@RomanZverev-yc5qc
@RomanZverev-yc5qc 2 года назад
Где вы взяли такой интересный пример?)
@_Kruzo_
@_Kruzo_ 7 месяцев назад
Артем, Вы прекрасно все объяснили...но я ни хера не понял даже с третьего раза :(
@rahmatj0n
@rahmatj0n 4 года назад
Привет Какие модули надо знать для создания нормальной программ в питон
@user-gh1nb7dv2g
@user-gh1nb7dv2g 4 года назад
Смотря какой тип программы? Web приложения, desktop & mobile приложения, скрапперы, игры, Искусственный интелект?
@rahmatj0n
@rahmatj0n 4 года назад
@@user-gh1nb7dv2g например decktop
@rahmatj0n
@rahmatj0n 4 года назад
Для всех этих задач есть отдельные модули ?
@user-gh1nb7dv2g
@user-gh1nb7dv2g 4 года назад
​@@rahmatj0n Конечно, одним модулем ты все не сделаешь, тем более с модулем. Научись Фреймворкам. Для Desktop & Mobile приложений у Python есть фреймворк Kivy, для сайтов Django & Flask, для скрепперов Scrapy. И чтобы эффективно работать со всем этим тебе нужно знать разные модули.
@rahmatj0n
@rahmatj0n 4 года назад
@@user-gh1nb7dv2g С чего начать
@konstantinvyacheslavovich8217
@konstantinvyacheslavovich8217 5 месяцев назад
Я вообще все что запомнил что у него есть платный канал
@SemyonMazepin
@SemyonMazepin 9 месяцев назад
Как эта собака работает? Почему именно в том месте?
@murshig5370
@murshig5370 3 года назад
Купить мир.Панимаю
@user-rl4om3nr5k
@user-rl4om3nr5k 2 года назад
Чтобы понять то, что здесь рассказываю, посмотри предыдущий материал, но он платный. Прикольно)) Автор конечно сам решает, как монетизировать контент, но как то смысла нет тогда здесь что-то искать полезное, когда ту же информацию можно получить на соседнем канале бесплатно. Понятно, что по ютубу не выучишь питон, информация не систематезирована, так еще и неотделимая часть только для спонсоров. Тогда имеет смысл весь контент только по подписке. Подумал тут еще, что стоимость живого подписчика (не бота) в схожей тематике на 2021г, если привлекать его через рекламу (например адвордс), может колебаться до 150-250 р. Не хотелось бы, чтобы кнопка "Спонсировать" и жадность авторов, убили бы тему доступного образования на Ютуб. Возможности для заработка у канала то никто не отнимал - вон и ссылки на продвижение платных продуктов в описании. Такой способ монетизации больше похож на манипуляцию) В итоге, потратил время, вопрос остался не закрыт. Вопрос: зачем мне такой канал в подписках? Да вроде не зачем. Развернутый коммент для продвижения видео - в подарок;) Отписка.
@vahadg
@vahadg 2 года назад
Добрый день! Не могу понять, как аргумент функции func попадает в n в функции inner? По моей логике это нужно сделать так: def decor(func, arg): def inner (): func(arg) ...
@user-wk9dl9lu2t
@user-wk9dl9lu2t Год назад
указывай тайм код, а то многое меняется в видео.
@user-wk9dl9lu2t
@user-wk9dl9lu2t Год назад
Сначала say становится inner, а затем уже вызывается якобы inner и уже в него передается аргумент n. Если не поймешь, попробую переобъяснить, раньше у самого проблемы с этим были) Главное посидеть, вникнуть, не торопится.
@capitulation27
@capitulation27 Год назад
@@user-wk9dl9lu2t Декораторы хорошо понимаете?)
@user-wk9dl9lu2t
@user-wk9dl9lu2t Год назад
@@capitulation27 из видео этого понял.
@capitulation27
@capitulation27 Год назад
@@user-wk9dl9lu2t А что-то параллельно читаете?
@python3815
@python3815 4 года назад
Как купить спонсорство ,номер карты не идёт,всё ввёл номер карты не идёт а ввёл всё правильно ?????
@egoroffchannel
@egoroffchannel 4 года назад
Это не ко мне вопросы. Либо с картой проблемы, либо с ютубом или патреоном
@user-np6pe4uh1t
@user-np6pe4uh1t 4 года назад
@@egoroffchannel у меня есть приложение которое требует обновлений модулей внутри неё, приложение прислали, и обычный Пип инсталл не работает, также модули я скачиваю через pip instal trusted host....... Потому что проблема с ссл сертификатом, так как обновить модули внутри приложения?
@victoriacare6156
@victoriacare6156 4 года назад
жаль в кризис не могу стать патрионом, не посмотреть многих видео
@user-xm5lz6tb7h
@user-xm5lz6tb7h 2 года назад
прям множественное наследование с полиморфизмом какоето)
@user-cs9wt9ob8o
@user-cs9wt9ob8o 5 месяцев назад
"buy world" - амбициозно...
@user-bt2kt2cg7f
@user-bt2kt2cg7f 4 года назад
Блин, Артем, как же это бесит. В твоем курсе по Python на Stepik не показывается этот долбанный неправильный тест, поэтому из-за этого одно задание можно решать неделю т.к я не могу понять, почему Failed test #4 of 16. Хоть я подставляю все возможные значения и программа работает, но ответ не засчитывается. КАК ЖЕ ЭТО РАЗДРАЖАЕТ(((
@egoroffchannel
@egoroffchannel 4 года назад
курс еще в этапе разработки какое задание? и какое у тебя решение?
@Unknown-ws6im
@Unknown-ws6im 4 месяца назад
Непонятно зачем нужна функция inner. Я ее убрал из кода и все работает точно также
@user-vr8fc7by2s
@user-vr8fc7by2s 3 года назад
Обьяснитн максимально просто что значит вернуть вложенную функцию без вызова пожалуйста
@egoroffchannel
@egoroffchannel 3 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-To2Q7bRubHw.html вот здесь говорится, что такое ВЫЗОВ объекта
@ne_psixyu
@ne_psixyu Год назад
"Hello world" and " Buy world" 🤣🤣🤣In my opinion, it should have been "Bye world, not Buy"
@AXGroser
@AXGroser Год назад
Мы купим весь мир)
@chrisrogers3795
@chrisrogers3795 Год назад
Вообще ничего непонятно, что откуда берётся, почему в функцию пишем не заданные перменные. Я вообще в шоке, что код этот запускается, это видимо магия какая-то программирования. Тут переменная ля функций задаётся лишь в самом конце, крч бред, я пока не понимаю.
@gpankov
@gpankov Год назад
А когда этотнужно на практике?
@serbon3905
@serbon3905 Год назад
В ооп много встроеных декораторов используются, @property @classmethod @staticmethod и подобное
@Shked102
@Shked102 3 года назад
привет мир, купить мир
@MP-pc9bo
@MP-pc9bo 3 года назад
10:14 скрытый байт
@user-ke8gc3he6f
@user-ke8gc3he6f 2 года назад
Только благодаря этоому видео я понял что такое декораторы. Спасибо!
@podvodnikk4562
@podvodnikk4562 4 года назад
Как смотрю, так фольксваген напоминает: Садишься такой в машину норм комплектации, за последние бабки, а там куча зуглушек :). Типо чо не мог побогаче комплектацию купить, нищеброд. И не надо вот, что бесплатно... время тоже стоит. дороже ничего нет. Но автору респект. Понятно.
@JuLia-mr7rn
@JuLia-mr7rn Год назад
Привет мир, я хочу тебя купить... ))) --buy--
@Tolya421.
@Tolya421. 3 года назад
Блин, две недели, две недели бился т только щас въехал 😂 Спасибо за уроки!
@ded6911
@ded6911 3 года назад
Купи мир
@user-gv8ee4fp8q
@user-gv8ee4fp8q 3 года назад
Подскажите, пожалуйста, в чем может быть проблема? В последней строчке выводится результат, но в конце еще выводится None: def header(func): def inner(*args, **kwargs): print('') func(*args, **kwargs) print('/') return inner def table(func): def inner(*args, **kwargs): print('') func(*args, **kwargs) print('/table') return inner @header def f(x,y): print(x, y) print(f(10, 5)) # #10 5 #/ #None
@egoroffchannel
@egoroffchannel 3 года назад
в питоне что возвращает функция, когда не указан return?
@reqam7969
@reqam7969 Год назад
@@egoroffchannel true or false?
@gorin1337
@gorin1337 Год назад
@@reqam7969 None
@nikolaydd6219
@nikolaydd6219 4 года назад
Ничего не понял.. Какой-то неудачный пример... Лучше на чем-нибудь полезном показывать, где это можно применить.
@aleksandrfareast
@aleksandrfareast 4 года назад
Объясняет как боженька, но стал жадничать в последнее время) Хотя, согласен, что любой труд должен оплачиваться.
@azar4ik1
@azar4ik1 4 года назад
Либо пусть полностью платный, либо нет. Неполная информация не имеет смысла. (как трейлер перед выходом фильма)
@forez7745
@forez7745 3 года назад
@@azar4ik1 но благодаря трейлерам, мы можем захотеть пойти на фильм. Да и в целом понять что он из себя представляет
@andrexxelles
@andrexxelles 3 года назад
А
@elkins87
@elkins87 2 года назад
как-то слишком все запутано и непонятно
@user-fw7dn9ib1j
@user-fw7dn9ib1j 3 года назад
Замыкание это не передача функции в функцию....это больше о замыкании ссылок на значение в памяти......исходя из этого обьяснение уже фундаментально не верно
@DoktorZlo96
@DoktorZlo96 4 года назад
Здрасьте: "Этот контент нельзя приобрести."
@egoroffchannel
@egoroffchannel 4 года назад
значит вы не житель РФ на патреоне можно оформить спонсорскую подписку
@DoktorZlo96
@DoktorZlo96 4 года назад
@@egoroffchannel не, патреон меня не интересует. жаль
@user-pb7dc1cw9g
@user-pb7dc1cw9g 4 года назад
@@DoktorZlo96 vpn? Proxy?
@jarefmozz9988
@jarefmozz9988 2 года назад
Кто-то мне объяснит зачем декораторы нужны? Чтобы функция выводила дополнительную строку? ДОПИШИ В ФУНКЦИЮ МЛИН!! Унаследовать из другого участка кода? ИСПОЛЬЗУЙ НАСЛЕДОВАНИЕ и не порти код своего коллеги кодом, который теперь будет вызываться с его функцией всегда и о котором он ничего не знал! Такое впечатление что программисты просто любят себе проблемы создавать!
@insideTheMirror_
@insideTheMirror_ 3 года назад
How the fuck did I come here?
@user-xo6ui5el2l
@user-xo6ui5el2l 2 года назад
Больно сложно пишешь, чем на самом деле. Для разнообразия хоть имена функциям давать разные
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
где одинаковые они?
@user-gf6er4ug6g
@user-gf6er4ug6g 2 года назад
Ну почему все "учителя" объясняют все исключительно через пень колоду? Декоратор decor это функция, которая берет в качестве аргумента функцию foo. После чего запись foo(без вызова) аналогично decor(foo) ВСЕ!!! Больше ничего мудрить не надо. def decor(Func): return Func.__doc__ + " decor run" @decor def foo(): """My documents container""" pass result = foo #Не запускаем! Без @decor эта строчка будет result = decor(foo) #result получит не ссылку на foo а то что вернет decor print(result) # А если мы хотим чтоб foo еще и запускалась, то надо чтоб # decor возвращал функцию, причем не обязательно foo или то что в нее вложено # да и вообще decor не обязанна иметь return, в этом случае вернет None def decor(Func): print("decor run") return Func @decor def foo(): #здесь могут быть переменные print("foo run") foo() #Теперь можно запускать, без запуска сработает только decor #Но есть еще и запускаемые декораторы. Этот декоратор обязан вернуть ссылку на функцию, которая берет декорируемую функцию в качестве аргумента. def decor(Func): print("decor run") return Func def callable_decor(): print("callable run") return decor @callable_decor() #здесь могут быть переменные def foo(): print("foo run") foo()
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
ты думаешь лучше объяснил? вот читает новичок твой коммент: _"это функция, которая берет в качестве аргумента функцию foo. После чего запись foo(без вызова) аналогично decor(foo)"_ сразу вопросы - что за foo такой? что такое "foo(без вызова)"? итд так что в своем глазу соломинку не видим
@user-gf6er4ug6g
@user-gf6er4ug6g 2 года назад
@@Das.Kleine.Krokodil А для кого я кусок кода вставил? Ты чо не видишь кнопку "читать дальше"? Автор же нафигачил каких то заумностей, каких то сложных функций в функции, да еще и язык HTML зачем то сюда вогнал. А что касается "новичка"(не того которым Навального отравили) Так новичок, прежде чем изучать функции с декораторами, должен знать что такое просто функция, и что ее можно запускать.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 года назад
@@user-gf6er4ug6g у тебя плохой пример, потому что он ничего не делает и нет аргументов функций
@user-gf6er4ug6g
@user-gf6er4ug6g 2 года назад
@@Das.Kleine.Krokodil Может и плохой, и не идеальный, но тут хотя бы передана основная идея декораторов, что строчка @decor перед def foo можно заменить строчкой foo = decor(foo) после ввода этих функций Это главное, то что автор так и не передал, а уж брать агрументы - это вообще частный случай. А то что здесь автор наворочал - мне ни фига не помогло разобраться. Пришлось методом научного тыка.
@user-gf6er4ug6g
@user-gf6er4ug6g 2 года назад
​@@Das.Kleine.Krokodil Я для кого писал строчку с комментарием "здесь могут быть переменные"? Прочитай сначала потом пиши.
Далее
100❤️
00:19
Просмотров 26 млн
The Best Way To See The World?! 😮‍💨
00:48
Просмотров 2,8 млн
Уроки Python casts #6 - Декораторы
19:50
Замыкания в Python. Closure Python
10:02
Просмотров 74 тыс.
Замыкания (Closures) в Python
30:54
Просмотров 14 тыс.
100❤️
00:19
Просмотров 26 млн