Замыкания (Closures) в Python

  Рет қаралды 16,165

Python Russian

Python Russian

Күн бұрын

Пікірлер: 125
@broadvard7354
@broadvard7354 4 ай бұрын
Несправедливо мало подписчиков. Именно на этом канале понял декораторы (с параметром) Замыкания, и много чего еще. Ушел в middle, работаю ) Спасибо тебе!
@СтаниславОконенко
@СтаниславОконенко 3 жыл бұрын
Более доходчивых видео не видел. Огромное Спасибо! Ждем продолжения ...
@PythonRussian
@PythonRussian 3 жыл бұрын
спасибо, а продолжение обязательно будет.
@mlr__roal_6867
@mlr__roal_6867 2 жыл бұрын
Согласен. Простым языком о сложных вещах. Автор-гений.
@ДмитрийМорев-я9ы
@ДмитрийМорев-я9ы Жыл бұрын
Это самое лучшее и самое доступное видео по замыканию которое я видел!!! 500 баллов из 100!!
@PythonRussian
@PythonRussian Жыл бұрын
спасибо за ваше мнение, такие комментарии мотивируют меня продолжать снимать видео =)
@БогданШовкопляс-ш7ж
@БогданШовкопляс-ш7ж Жыл бұрын
Неделю мучался с этой темой. Посмотрел больше 10 видео. Но только после твоего наконец разобрался.
@walter5485
@walter5485 7 ай бұрын
I am a newbie on your channel, and this is the best explanation of the closure concept I've ever seen before !!!! Thank you for your help
@anbur9197
@anbur9197 7 ай бұрын
how could you even understand what he was saying?
@mrFixSwitchHack
@mrFixSwitchHack Жыл бұрын
Самое доходчивое объяснение Замыкания с понятными примерами использования, спасибо!
@yuriismakota9574
@yuriismakota9574 Жыл бұрын
Спасибо автору за урок! На конец то понял, как все устроенно!
@narikate2144
@narikate2144 Жыл бұрын
Только вчера вас хвалил за объяснения работы с git, сегодня вы уже мне помогаете доразобраться с замыканиями, причем все, опять же, объясняется на пальцах. Спасибо!
@user-lechat-lexus
@user-lechat-lexus 3 жыл бұрын
Прекрасное объяснение, без воды, с демонстрацией кода по каждому обсуждаемому случаю и тонкостям использования, сам боженька не объяснил бы лучше) 👍
@fanatxrona8329
@fanatxrona8329 2 жыл бұрын
спасибо за офигенный, доходчивый видос с кучей примеров)
@uvou-u3316
@uvou-u3316 Жыл бұрын
Начал не так давно изучать Пайтон и Ваш канал для меня стал открытием: максимально лаконичное но в то же время исчерпывающее изложение материала, приближенность к практике (частая проблема видео для начинающих: объясняют какие то понятия но не раскрывают тему, для чего это все нужно и зачем использовать в реале). Спасибо за Ваш труд!
@ArntorRUS
@ArntorRUS 3 ай бұрын
Спасибо за очень полезную информацию!
@barboss8129
@barboss8129 3 жыл бұрын
Самое ТОПОВОЕ объяснение которое только можно придумать!!!
@VladStone
@VladStone 2 жыл бұрын
честно говоря, я посмотрел видео про замыкание на еще 2-3 каналах, и в вашем видео реально самое лучшее объяснение, есть четкое определение - что вообще такое замыкание, зачем оно нужно, в чем его плюсы, и где оно вообще может использоваться! Спасибо
@ЮрийЩербинин-ц7п
@ЮрийЩербинин-ц7п 7 ай бұрын
❤❤❤❤❤
@tryhard114
@tryhard114 9 ай бұрын
удивительно..я неожидал такой подачи, это надо уметь так разжевать грамотно.. инста подписка!
@rrysovets4702
@rrysovets4702 Жыл бұрын
Лучшее что я видел по теме замыкания !
@АркадийСергеев-о8м
@АркадийСергеев-о8м Жыл бұрын
Спасибо, большое за столь подробное и качественное объяснение темы.
@kamilgabdullin
@kamilgabdullin 2 жыл бұрын
Спасибо большое, очень доходчиво и понятно.
@Ykropp
@Ykropp 11 ай бұрын
Доступно объяснил. Спасибо!
@ДенисЩербинин-ш8у
@ДенисЩербинин-ш8у 2 жыл бұрын
Самое подробное, что я смотрел. Как развернуто. Спасибо тебе!!!👍👍
@SaVa_144
@SaVa_144 Жыл бұрын
Блин, классное объяснение. Простым языком и доходчиво.
@ba8318
@ba8318 Жыл бұрын
уже второй день пытался осознать и переварить эти замыкания, и на середине этого видео наконец-то до меня дошло... короче лайк
@nikitabbrv5947
@nikitabbrv5947 2 жыл бұрын
Шел третий день, как я гуляю по каналам, чтобы таки уяснить скрытый смысл замыканий. На каждом, конечно, узнаю новое)
@pfk9025
@pfk9025 3 жыл бұрын
Крутое объяснение. Главное, что есть примеры практического применения. Ждем новых видео)
@Posadskiy
@Posadskiy 2 жыл бұрын
Ручка на крышке - атас!)) Спасибо, дядь, буду готовить.
@netsdzian8009
@netsdzian8009 2 жыл бұрын
Лучший материал по замыканиям! Спасибо за видео!
@gecnepago
@gecnepago 3 жыл бұрын
пожалуй лучшее видео по теме!! у вас талант)
@PythonRussian
@PythonRussian 3 жыл бұрын
спасибо, благодаря таким отзывам и продолжаю снимать видео
@Саня_КИРПИЧ13
@Саня_КИРПИЧ13 2 жыл бұрын
Мой мозг прояснился как никогда раньше, очень доходчивое видео
@АндрейА-ю3б
@АндрейА-ю3б Жыл бұрын
Классно! я как раз сижу свой первый полноценный проект делаю, и как раз использую global, и не задумался использовать класс, хотя уже пользуюсь ими, теперь пойду править свой код спасибо! продолжай пилить контент!
@ГубкаБоб-р8ъ
@ГубкаБоб-р8ъ Жыл бұрын
Отличный контент, спасибо большое
@Quimorax
@Quimorax 3 жыл бұрын
Классное видео, понятно и с примерами объяснено👍
@PythonRussian
@PythonRussian 3 жыл бұрын
Спасибо
@vasya8875
@vasya8875 Жыл бұрын
Спасибо за отличное объяснение темы :)
@x-user-agent
@x-user-agent 3 жыл бұрын
(после видоса про декораторы) ааа.... ну теперь понятно😆
@VadimBorisov-ed4mj
@VadimBorisov-ed4mj 2 жыл бұрын
Наконец все понял, спасибо!
@Bah1918
@Bah1918 3 жыл бұрын
Замечательно.СПАСИБО.
@donfedor007
@donfedor007 2 жыл бұрын
Спасибо Вам!!! Очень помогла аналогия с ООП, так получилось, что я разобрался с ООП, но не совсем понимал замыкания(
@rollangrant8347
@rollangrant8347 2 жыл бұрын
Огромное тебе спасибо за твой труд!! 👍🙏
@Прогулкивокругсвета-ф2ю
@Прогулкивокругсвета-ф2ю 3 ай бұрын
На 14:07 как раз можно упомянуть про коллекцию deque, тогда это будет полноценный фильт для отделения погрешности, ползучее среднее арифметическое или как то так оно называется)
@volodymyr8215
@volodymyr8215 Жыл бұрын
Доступно.
@krolik_samurai
@krolik_samurai Жыл бұрын
Большое спасибо за очередное полезное и подробное видео! Порекомендовал уже канал знакомым, чем могу ткскзть) Ps Раньше, кажись, можно было накидывать идеи для будущих видео. Если актуально и данной темы ещё не было, то как вариант - абстракция в программировании
@stevem4806
@stevem4806 Жыл бұрын
Спасибо!
@kizik85
@kizik85 2 жыл бұрын
Спасибо за объяснение!!!
@Laserball74
@Laserball74 2 жыл бұрын
Спасибо большое автору за хороший контент! 👌Закинул в избранное
@alexwrite6974
@alexwrite6974 2 жыл бұрын
Крутотень, спасибо!
@Perchik543
@Perchik543 10 ай бұрын
Спасибо. Объяснение настолько подробное, что только дебил не поймёт. Но! есть один нюанс! Марк Лутц, в своей книге "Изучаем Python", которую вы посоветовали, написал ключевую вестч, которую Вы пропустили в своём видео. Есть вероятность, что я пропустил мимо ушей , но всё-таки дополню. Внутренняя ф-ция является такой же переменной как и все остальные, которые находятся во внешней. Т.е. внутренняя ф-ция- это локальная переменная с которой можно работать как и с объявленными напрямую. Т.е. Х=88, на локальном уровне def wraper(): или внутренняя def inner(): X=99 return X, - это тоже самое, что Х=99. Очень хорошо! Ещё раз СПАСИБО!
@alexeykolodochkin5826
@alexeykolodochkin5826 3 жыл бұрын
Вот теперь добро победит global ).
@dimk7983
@dimk7983 3 жыл бұрын
Спасибо, интересно было
@bandrjuxa
@bandrjuxa 17 күн бұрын
Основание это число, которое возводится в степень, а не сама степень. Например 5 в степени 2, основание - это 5
@kiryllshynharow9058
@kiryllshynharow9058 2 жыл бұрын
24:42 pow__ = pow_(2) pow_2 = pow_(3) а логичнее было бы назвать pow2 = pow_(2) pow3 = pow_(3) тогда пример бы был хорош не только не только для объяснения но и выглядел как на практике где-то даже вполне применимый
@vor6758
@vor6758 10 ай бұрын
Good
3 жыл бұрын
нужен плейлист про ооп)))
@PythonRussian
@PythonRussian 3 жыл бұрын
да, это в планах, пока боюсь замахиваться, надо придумать как верно все объяснить, чтобы и понятно и в дебри не залезть и не упустить важного.
3 жыл бұрын
@@PythonRussian топи мен)))
3 жыл бұрын
@@PythonRussian и мы с тобой топнем)
@azatgaleev1819
@azatgaleev1819 3 жыл бұрын
спасибо
@Max_Rabotyaga
@Max_Rabotyaga Жыл бұрын
Очень грустно, когда девочки и мальчики не пересекаются ((((
@barma1309
@barma1309 12 күн бұрын
Жиза прям
@viktorsokolov8153
@viktorsokolov8153 2 жыл бұрын
Спасибо за тему. Практический вопрос. Игра быки-коровы. Ответ во вью как раз реализовывал через global. Решил попробовать с замыканием. На первый запрос с фронта все работает, на второй - уже нет. Пропробовал реализовать count. Каждый раз count выдает 1, то есть обнуляется значение перед каждым новым запросом. Вопрос - как можно сохранить значения wrapper во вью?
@viktorsokolov8153
@viktorsokolov8153 2 жыл бұрын
Прошло 4 месяца и я нашел ответ) Работает closure с web socket. Фух, ура). P.S. с удовольствием пересмотрел урок.
@MrPavel1207
@MrPavel1207 3 ай бұрын
начинающий в Питоне. все базовые темы освоил, и замыкания (благодаря в т.ч. данному видео) но не понимаю совсем - куда я лично на начальном этапе могу его применять...
@PythonRussian
@PythonRussian 3 ай бұрын
на начальном этапе полезно понимать как это работает, чтобы была возможность читать и воспринимать чужой код, а дальше все дело только в практике.
@railsabbitovich408
@railsabbitovich408 3 жыл бұрын
Красава)
@СтаниславОконенко
@СтаниславОконенко 3 жыл бұрын
Хочу предложить новую тему: - "Python и работа с Типами". Python не жестко типизированный язык и как ПРАВИЛЬНО работать с типами очень важно!
@PythonRussian
@PythonRussian 3 жыл бұрын
не понимаю о чем вы, в питоне строгая типизация, хоть и динамическая. Правильно работать с типами надо согласно их предназначению.
@СтаниславРассказов-ы4м
@СтаниславРассказов-ы4м 2 жыл бұрын
Подскажите, а как быть, если надо обратиться к students (в видео) из другого файла проекта? Т.е. в файле лежит функция, которую мы импортируем туда, где объявлен students. Эта функция обращается к students. -> Students надо импортировать в файл, где описана функция. -> Получается циклический (круговой) импорт. Не импортировать students из основного файла вообще и не обращать на негодование PyCharm? По идее, при импорте функции из файла в основной, функция попадет туда, где об этой переменной уже известно и всё должно быть хорошо.
@СтаниславРассказов-ы4м
@СтаниславРассказов-ы4м 2 жыл бұрын
Отвечу сам вариант, который нашел. Может есть получше методы. Надо вынести объявление переменной students так же в отдельный файл и уже его импортировать. Идеально подошел вариант с __init_.py файлом. Не понимал как это работает, но где то видел. Чисто экспериментально попробовал. Сработало идеально. Ну и потом уже прочитал механизм работы __init__.py
@EgorShved-s5u
@EgorShved-s5u Жыл бұрын
Доброго времени суток! Обьясните пожалуйста) Почему после каждого нового вызова, в список добавляется по одному имении. Спасибо)
@Nayr1s
@Nayr1s 4 ай бұрын
А ролик смотреть пробовал ?
@Evgeniy-s2d
@Evgeniy-s2d 10 ай бұрын
Большое количество времени пытаюсь въехать в замыкания и декораторы, но постоянно остаётся чувство, что что-то недопонял
@x-user-agent
@x-user-agent 3 жыл бұрын
спасибо👍 одного не понял - как аргумент передаваемый при вызове внешней функции попадает во внутреннюю, при том что во внешней только ()?
@PythonRussian
@PythonRussian 3 жыл бұрын
это в каком из примеров? а то я не понял как это () и при этом аргумент передаваемый функции
@x-user-agent
@x-user-agent 3 жыл бұрын
@@PythonRussian ну или параметры) у нас names() - внутри не указано никаких принимаемых параметров, а когда мы вызываем students('vasya') этот вася каким-то загадочным путем попадает в вызов inner в виде inner('vasya'). вот это непонятно. какбу-то должно быть что-то вроде def names (name:str) .... return inner(name). может это какое-то соглашение в питоне, что если ничего не обьявлено и идет вызов внутренней функции в return то то что пришло в параметрах при вызове внешней функции по умолчанию попадает во внутреннюю?
@PythonRussian
@PythonRussian 3 жыл бұрын
@@x-user-agent о, так тебе рано пока замыкания, посмотри видео про декоратор например. Тут фишка в том, что мы функцию иннер вернули из нейм. Не вызвали, а вернули. И как раз она принимает нейм. В общем тебе нужно посмотреть как внутренняя функция возвращается из внешней.
@x-user-agent
@x-user-agent 3 жыл бұрын
@@PythonRussian смотрел) но видно не отложилось в памяти как это работает) пересмотрю еще раз, спасибо
@PythonRussian
@PythonRussian 3 жыл бұрын
@@x-user-agent а ты лучше код примеров понабирай руками, поэкспериментируй, тебе главное понять что мы возвращаем функцию а не ее результат.
@Makaler
@Makaler 2 жыл бұрын
А что это за запись inner(value: int) -> float: Не понимаю...
@PythonRussian
@PythonRussian 2 жыл бұрын
kzbin.info/www/bejne/jqa8i6qeftuFa9k
@MrSmallChe
@MrSmallChe 3 жыл бұрын
через лямбду не понятно как сделать аналог вложеной функции с добавлением в список! не понятно как посмотреть состояние переменной(пример с pow) ? (метода call_contents нет) . как вообще работать с такими "переменными" ведь по факту она просто ведёт на функцию в памяти
@PythonRussian
@PythonRussian 3 жыл бұрын
пример с лямбдой был именно примером, как можно написать короче, если переменную захватываем из параметра внешней функции. Это вовсе не рекомендация к действиям. Состояние уже никак не посмотреть без копания внутри замыкания (я показывал пример), как раз само замыкание по идее и должно тебе давать ту инфу, что нужно, это единственный верный способ взаимодействия. Если логика какая то хитрая то уже рекомендуется нормальный класс писать, замыкание - это вещь специфическая. ТО есть замыкание это не способ посмотреть что там замкнуто, а способ как то работать с этим, в возвращаемом результате должно быть то, что тебе нужно. Почитай у Марка Лутца, он то получше объясняет.
@MrSmallChe
@MrSmallChe 3 жыл бұрын
@@PythonRussian можно ещё раз обьяснить ? как работать с замыканиями? если такая переменная по факту ссылка на функцию а не на значение....ну т.е ничего я с ней не могу поделать (говорилосьчто это ЗАМЕНА глобальным переменным)
@PythonRussian
@PythonRussian 3 жыл бұрын
@@MrSmallChe замыкания -это механизм, он просто есть и нужно понимать как он работает. В том числе да -можно заменить глобальные переменные. И как раз пример с каунт это показывает. Ты получаешь ссылку на функцию в которой можешь увеличивать или уменьшать счетчик, а если передать туда 0 то ты просто получишь текущее значение. То есть вся работа с счетчиком скрыта внутри замыкания и ты можешь настроить логику такого взаимодействия не боясь что кто-то поменяет значение счетчика в обход твоей логики.
@MrSmallChe
@MrSmallChe 3 жыл бұрын
@@PythonRussian в общем замыкания это кастрированные атрибуты обьекта класса, я понял.
@PythonRussian
@PythonRussian 3 жыл бұрын
@@MrSmallChe да, это по сути объект урезанный в возможностях по сравнению с объектом самописного класса.
@x-user-agent
@x-user-agent 2 жыл бұрын
решил пересмотреть - получается замысловатый способ создать переменную с декоратором 😆 еще не ооп, но уже... методы что ли
@АндрейКоновалов-ь6м
@АндрейКоновалов-ь6м 3 жыл бұрын
@Python Russian Привет! На 16 минуте не понял причем тут неизменяемый тип, если на 10 строчкe использовать += [name] вывалится такая же ошибка, и фиксить придется тоже с помощь nonlocal
@PythonRussian
@PythonRussian 3 жыл бұрын
приветствую! да, верно, неизменяемый тип тут не при чем, я там сказал что подробности в видео про нонлокал, просто оговорился.
@АндрейКоновалов-ь6м
@АндрейКоновалов-ь6м 3 жыл бұрын
@@PythonRussian А можете объяснить, почему с методом append ничего не ломается, не смог докопаться до истины сам
@PythonRussian
@PythonRussian 3 жыл бұрын
@@АндрейКоновалов-ь6м а видео про нонлокал не стал смотреть? там с примерами показываем. Когда ты используешь аппенд или другой метод ты не создаешь новый объект (как например с интом -каунт), а потому никаких проблем не возникает. А вот когда ты каунт меняешь или для списка пишешь += (то есть создаешь новый) то интерпретатор сразу же считает что речь идет о локальной переменной, которую следует искать тут же в функции. И слова глобал и нонлокал нам нужны как раз чтобы подсказать питоше что переменную стоит искать не в данной функции а где то выше по скоупам. Без них он считает что ты меняешь какую то переменную не создав ее. Короче смотреть можно без проблем, но если менять (не внутренними методами!) то нужен нонлокал.
@АндрейКоновалов-ь6м
@АндрейКоновалов-ь6м 3 жыл бұрын
​@@PythonRussian Конечно я смотрел, я вообще фанат канала, очень структурированное повествование. Я проверил по id, += не создает новый объект для списков. Поэтому мне и не понятно почему всё багуется a = [12] b = [1] print(id(a)) #140668672319680 a += b print(id(a)) #140668672319680
@PythonRussian
@PythonRussian 3 жыл бұрын
@@АндрейКоновалов-ь6м то что копаешь и разбираешься -это отлично. А теперь взгляни на это не в плане того как реализовано под капотом конкретная операция, а что она собой представляет. a+=1 по сути значит а = а+1, то есть увеличиваем а, а потом полученному объекту присваиваем ссылку, то есть переменная а будет уже ссылаться на результат вычислений. Понимаешь? То же и со списком a_list+=[3] явно говорит интерпретатору что ссылку надо будет потом перекинуть на новый, увеличенный список. В этот то момент интерпретатор и думает, что раз речь идет о изменении ссылки то это локальная переменная... А далее уже обсуждали. Если совсем упрощать, то наличие в выражении переменной и знака равно потребует для нее нонлокал. Кстати, обрати внимание что аналогичная операция выполненная вот так a_list.extend([3]) - не потребует нонлокал. Сможешь теперь объяснить почему?
@everythingforyoutube4031
@everythingforyoutube4031 Жыл бұрын
if __name__ == '__main__': объясните пожалуйста зачем это логическое условие и что это означает
@PythonRussian
@PythonRussian Жыл бұрын
kzbin.info/www/bejne/iHiblaKYq8tpoac
@ХалилМаденбай
@ХалилМаденбай 3 жыл бұрын
откуда берет параметр value аргументы?
@PythonRussian
@PythonRussian 3 жыл бұрын
получает при вызове функции. Мы же иннер вернем, а она принимает на вход именно велью. Если в видео не понял -почитай как у Лутца написано
@Саня_КИРПИЧ13
@Саня_КИРПИЧ13 2 жыл бұрын
как сделать такую тему в пайчарме?
@PythonRussian
@PythonRussian 2 жыл бұрын
в плагины зайди, найди Dark Purple, установи и примени
@spiwt
@spiwt 10 ай бұрын
Зачем нужны замыкания если можно реализовать тоже самое с помощью классов
@АлексейКирьянов-я9ь
@АлексейКирьянов-я9ь Жыл бұрын
А зачем вообще нужно замыкание ведь мы можем просто функционал двух функций names и inner объединить в рамках одной функции?
@maximmaxim8374
@maximmaxim8374 2 жыл бұрын
пока смотрел, ракета ударила по городу наша реальность, мда
@СтаниславОконенко
@СтаниславОконенко 3 жыл бұрын
Скажите, Python Russian, можно Вам показать свою поделку на основе Замыкания? Не хочется тратить ваше время зря ...
@PythonRussian
@PythonRussian 3 жыл бұрын
если не большую только - кинь на почту мне ссылку на гит или сам код.
@GRECHKA230
@GRECHKA230 6 ай бұрын
Замыкание - это вор, который запоминает местонахождение дома и грабит его.
@PythonRussian
@PythonRussian 6 ай бұрын
хехе, неплохо =)
@__username__
@__username__ 2 ай бұрын
По первой половине видео непонятно одно: зачем нужен такой изврат и хождение по краям тонких знания языка при использовании замыканий вместо того, чтобы явно использовать объекты, у которых прямо из синтаксиса понятно, какое состояние внутренних переменных они хранят - свое частное или общее классовое. Опять же несколько раз упоминается, что создаются *объекты* . Ну и зачем напяливать сову на глобус и использовать функции с хитрыми способами сохранения состояний там, где нужны объекты? Можно и ломом яму выкопать, но лопатой - быстрее и эффективнее.
@PythonRussian
@PythonRussian 2 ай бұрын
например этот механизм используется в декораторах, потому его важно понимать. Во-вторых, этот механизм пришел к нам из функционального программирования, где ООП и объектов в нашем понимании нет, есть только функции и данные.
@Daloshka
@Daloshka Жыл бұрын
а я создавал глобальную переменную как дурак
@PythonRussian
@PythonRussian Жыл бұрын
все с этого начинают
@andynaz7044
@andynaz7044 Жыл бұрын
Hикакого "замыкания" там не происходит! Там происходит "смыкание" функции и скоупа. Именно в этом смысл всего этого механизма. Неужели не пришло в голову хоть разок посмотреть в словаре перевод слова CLOSURE и не пытаться прикручивать русское слово ЗАМЫКАНИЕ к объяснению сабжа?? Правильно было бы ввести в оборот слово СМЫКАНИЕ, но как прижилось, так и прижилось.
@PythonRussian
@PythonRussian Жыл бұрын
в русском языке есть и слово замыкание. Оголенный провод болтается (это свободная переменная) и ударяется о нечто стационарное металлическое (это функция), происходит замыкание, после чего они оказываются соединены. Вполне описывает ситуацию. Но я за, если вы напишете книгу или начнете обучать людей использовать слово "смыкание", им правда нелегко будет на собеседованиях и при общении, но зато ваш пыл будет к месту.
@BohdanVR666
@BohdanVR666 Жыл бұрын
Русский язык это не про логику
ООП: Инкапсуляция в python
51:12
Python Russian
Рет қаралды 14 М.
Лямбды. Не такие и страшные
36:37
Python Russian
Рет қаралды 10 М.
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 2 МЛН
Why no RONALDO?! 🤔⚽️
00:28
Celine Dept
Рет қаралды 77 МЛН
Рекурсия в Python
52:13
Python Russian
Рет қаралды 5 М.
Первые шаги в ООП: класс, объект, self
1:00:45
Python Russian
Рет қаралды 35 М.
Правила хорошей функции в Python
41:58
Python Russian
Рет қаралды 14 М.
Python с нуля. Урок 18 | Вложенные функции, замыкания
19:56
Основное оружие питониста: Listcomps и Genexp
52:55
Декораторы в Python
19:45
Программирование 2.0
Рет қаралды 14 М.
Что за звери *args и **kwargs
38:02
Python Russian
Рет қаралды 8 М.
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 2 МЛН