#44. Замыкания в Python | Python для начинающих

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 117

  • @ЛаоЦзы-я1ъ
    @ЛаоЦзы-я1ъ 2 ปีที่แล้ว +36

    За его умение преподать свои знания и за тот обыем работы, которую он проделал, что бы вам легче было учиться, не скупитесь ставьте лайки. Я перебрал много уроков в рунете и даже забросил изучение этого языка, потому как все остальные просто отрабатывали время на Ютубе для рекламы и было не интересно и не понятно их слушать. Но спустя 2 года возобновил благодаря этому человеку, случайно Ютуб выдал его уроки в рекомендованных и теперь в запой учу этот язык! Сергей Балакирев ВЫ просто гений преподавания!

  • @DobroDelo
    @DobroDelo 2 ปีที่แล้ว +26

    Великолепное объяснение! Не перестаю восхищаться способностью Сергея объяснять сложные вещи наглядно и простым языком.

  • @ДмитрийПлешков-р3ъ
    @ДмитрийПлешков-р3ъ ปีที่แล้ว +15

    Очень талантливый педагог. Просто педагогический дар. Учитель с большой буквы. Дружище, ты уже в раю досрочно, за свою благую деятельность. Можешь забить на всё и отдыхать. Но лучше продолжай! Слушать и смотреть - сплошное удовольствие. Спасибо, Сергей!

  • @Developer_python_
    @Developer_python_ ปีที่แล้ว +5

    Декораторами користуюсь давно але лише зараз зрозумів термін "замикання". Дякую!!!!!

  • @paveldudnikov5302
    @paveldudnikov5302 3 ปีที่แล้ว +20

    Сергей с Вами любой язык будет интересен и Ассемблер в том числе!

  • @РусланНеврюзалиев-ю9ц
    @РусланНеврюзалиев-ю9ц 3 ปีที่แล้ว +21

    Спасибо Вам большое за бесплатные объяснения тех тем которые некоторые авторы курсов предпочитают объяснять лишь после пополнения кошелька, и подача интересная, легкая, внятная и понятная, спасибо еще раз, будет время обязательно пройду Ваш курс на stepik!

  • @failenthero9105
    @failenthero9105 หลายเดือนก่อน

    Спасибо огромное, целый день был убит на разбирательство с этой темой, пока не увидел ваше видео. Самое понятное объяснение, спасибо огромное!!!!

  • @rendom7700
    @rendom7700 2 ปีที่แล้ว +6

    Боже, насколько просто и понятно. Я уже думал что нормального объяснения замыканий не существует.

  • @mrm1tn1ck
    @mrm1tn1ck 2 ปีที่แล้ว +7

    Спасибо, лучшее объяснение замыканий, что я видел, ключевая тема именно в том почему на самом деле этот процесс называется замыканием, а именно в замыкающейся цепочке ссылок между окружениями.

  • @sefgeypimenov9261
    @sefgeypimenov9261 ปีที่แล้ว +3

    Начал изучать програмирование 10 месяцев назад, прочитав несколько книг, и посмотрев несколько (ускоренных) курсов, для себя понял что изучению кажного "инструмента" необходимо уделять гораздо больше времени, и стараться получить исчерпывающюю информацию по каждому. Сейчас я дошел до "функций" и вижу что приктически во всех даже очень разрекламированных учебниках и курсах, темы функций касаються весьма поверхностно, врочем как и всего остального. А вот у Сергея практическая справочная информация по языку, обернутая в доступную для понимания обертку. Не перестану вас благодорить, огромное вам спасибо Сергей!!!

  • @MikeDev-Sooworr
    @MikeDev-Sooworr 3 หลายเดือนก่อน +1

    Изумительно красивые решения! Великолепное видео! Очень впечатлило.

  • @nikonlaw
    @nikonlaw 2 ปีที่แล้ว +8

    Большое спасибо за "человеческое" объяснение. Я раз 10 пересмотрел, но таки понял.

  • @RichardEhrlich
    @RichardEhrlich 3 ปีที่แล้ว +5

    КРУТО!!! А самое главное ДОХОДЧИВО!!! Сколько пытался понять эти замыкания, никто ранее не мог донести на моём языке)). Визуализация решает! До меня дошло)

  • @Кирилл-ь4х6ф
    @Кирилл-ь4х6ф หลายเดือนก่อน +1

    Спасибо, очень понятный разбор

  • @donfedor007
    @donfedor007 3 ปีที่แล้ว +6

    Замыкание это от слова Замок, а не замыкание из электрики))))) Вы мне прям глаза открыли!

  • @MrPresident367
    @MrPresident367 ปีที่แล้ว +2

    Лучшее объяснение. Спасибо большое.
    Очень помогло.)

  • @armstrong2790
    @armstrong2790 2 ปีที่แล้ว +3

    гениальный преподаватель

  • @TSM_149
    @TSM_149 ปีที่แล้ว +1

    Сергей, спасибо за ролик!
    Результат работы принципа замыкания аналогичен работе со свойствами нескольких экземпляров одного класса.
    Может стоит ещё пояснить, когда и что лучше использовать? Или это только для понимания декораторов?
    Ну и лайк уже стоит!!

  • @elen2662
    @elen2662 2 ปีที่แล้ว +4

    Могла бы поставить 5 лайков, поставила бы 😀 Вы творите потрясающие уроки

  • @ArTuRS-n6t
    @ArTuRS-n6t ปีที่แล้ว +1

    большое спасибо. очень доступно. Спасибо ещё раз за ваше потраченное время!!!!!

  • @Grigorev84
    @Grigorev84 2 ปีที่แล้ว +4

    Спасибо, только ваш урок позволил мне понять Замыкание

  • @ivanlino3747
    @ivanlino3747 3 ปีที่แล้ว +4

    спасибо, очень помогают данные видео в изучении(вспоминании)материала...особенно поздно вечером после (не любимой) работы))

    • @donfedor007
      @donfedor007 3 ปีที่แล้ว

      А шо за работа такая??

  • @jackmetropolitan7845
    @jackmetropolitan7845 3 ปีที่แล้ว +2

    Контент - БОМБА

  • @callmekraken1934
    @callmekraken1934 8 หลายเดือนก่อน

    Большое спасибо, на лету схватил непонятную ранее мне тему

  • @snakefinger-16
    @snakefinger-16 8 หลายเดือนก่อน +1

    Браво! Великолепно!

  • @donfedor007
    @donfedor007 3 ปีที่แล้ว +2

    Топ Видосы огонь! А с курсом на степик в двойне огонь!

  • @Neural.Academy
    @Neural.Academy 2 ปีที่แล้ว

    Больше спасибо, все понятно. Не сразу все укладывается, но после нескольких повторений все ок

  • @Belgorod_Jedi
    @Belgorod_Jedi ปีที่แล้ว +2

    Объясняли очень хорошо, разве что не упомянули про local, global. И еще про атрибут enclosure

    • @ney107-iz6xl
      @ney107-iz6xl ปีที่แล้ว +1

      в прошлых уроках говорили

  • @ViktorNikoriak
    @ViktorNikoriak 3 ปีที่แล้ว +1

    print(f"Замыкание на {#selfedu} , и Python в глобальном окружении . Спасибо за материал")

  • @86Blind
    @86Blind 3 ปีที่แล้ว +1

    Вот теперь я понял наконец-то как работает замыкание.

  • @alexzir
    @alexzir ปีที่แล้ว

    Хорошая подача, Спасибо!

  • @andredru4278
    @andredru4278 10 หลายเดือนก่อน +1

    Спасибо. Круто!

  • @podgorniy.r
    @podgorniy.r ปีที่แล้ว +3

    2:39 Сергей, как Вы считаете, возможно продолжают существовать не внешние окружения, а переменные (ссылки) на определенные объекты из этих окружений?
    1. Во внешней функции say_name объявляется переменная name, которая также используется во внутренней функции, поэтому say_goodbye сохраняет ссылку на данный объект из внешней области видимости в момент вызова внешней функции say_name("Sergey") на этапе определения внутренней функции def say_goodbye.
    2. После вызова и завершения внешней функции say_name она удаляется сборщиком мусора вместе с созданной ссылкой, поэтому во внешней функции данная переменная уже не существует, но внутренняя функция по прежнему хранит ссылку на тот же самый объект name, который был создан во время вызова внешней функции say_name().
    3. В свою очередь внутренняя функция say_goodbye и объект name не удаляются благодаря тому, что ссылка на данную функцию хранится в переменной f.
    Собственно это и есть замыкание, то есть своего рода захват свободных переменных (ссылок на объекты) из внешних областей видимости.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      Да, вполне логично. Правда, как тут в деталях работает не могу сказать, это уже надо в реализацию смотреть. В целом, этого понимания вполне для написания программ любой сложности!

    • @podgorniy.r
      @podgorniy.r ปีที่แล้ว

      @@selfedu_rus отлично, благодарю :)

  • @Bogonavt
    @Bogonavt 2 ปีที่แล้ว +6

    Спасибо! как работает замыкание понятно. Непонятно зачем? ведь все то же самое можно реализовать в обычной функции? Неужели все это ради того чтобы иметь отдельное окружение?

  • @jamjam3337
    @jamjam3337 ปีที่แล้ว +1

    спасибо!👏

  • @yuliiaplakhotna5710
    @yuliiaplakhotna5710 2 ปีที่แล้ว +4

    а почему для strip_chars можно указывать в скобках перечень символов для удаления и удалятся только те, что будут во введенной строке? почему не нужно создавать .strip для каждого символа отдельно?

  • @ЕгорАбросимов-л2о
    @ЕгорАбросимов-л2о 2 ปีที่แล้ว +1

    Очень понять, спасибо

  • @user-068rus
    @user-068rus 6 หลายเดือนก่อน +2

    Жаль что вы не мой преподаватель на скиллбоксе 3 года назад, может быть и выучился бы, сейчас в скай про разница коллосальна

  • @bratka4636
    @bratka4636 2 ปีที่แล้ว +1

    1:35 доброго вечора! у мене пітон 3.10 і в ньому все працює навіть без силки на внутрішню функцію. Це був обновлений збірник сміття?

    • @nikus20111111
      @nikus20111111 2 ปีที่แล้ว

      return say_goodbye без ()

  • @fedor835
    @fedor835 ปีที่แล้ว +1

    На рисунке (2:53) указано что глобальная переменная f ссылается на функцию say_goodbye, но ранее в коде (2:10) f ссылается на функцию say_name.
    Получается что дальнейшее объяснение не логично.
    Разъясните пожалуйста ситуацию.

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      ну там же идет вызов функции:
      f = say_name("Sergey")
      функция вызывается и возвращает ссылку на внутреннюю функцию!!!

  • @podgorniy.r
    @podgorniy.r 2 ปีที่แล้ว

    0:55 Переменная `name` отображается во внутренней функции `say_goodbye` и-за того, что она находится во внешней области видимости?
    То есть условно для внутренних функции все переменные из внешних функций являются "глобальными"?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +1

      нет, name - это параметр функции и переменная находится в области видимости первой (внешней функции) не глобальной

    • @podgorniy.r
      @podgorniy.r 2 ปีที่แล้ว

      Я имел ввиду условно «глобальной», то есть переменные из внешних функций могут быть использованы во внутренних функциях. Или это касается только параметров функции?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +1

      @@podgorniy.r да, из внешних пространств могут всегда, в этом смысл замыканий

    • @ЛаоЦзы-я1ъ
      @ЛаоЦзы-я1ъ 2 ปีที่แล้ว

      Получается так

  • @andreybrit7015
    @andreybrit7015 2 ปีที่แล้ว +1

    Нашел на степикею Спасибо

  • @fahrenheit1863
    @fahrenheit1863 ปีที่แล้ว +1

    А я все делал через глобальные переменные, а оказалось все гораздо проще.

  • @vanillaicecream4949
    @vanillaicecream4949 3 ปีที่แล้ว +1

    я не заметил, как уже смотрю 44 видео, обычно 10-15 минут видео кажутся вечностью, особенно если это обучающий материал, а тут только начнешь, а уже и "Для закрепления материала пройдите практические задания"

  • @illiukhin
    @illiukhin 3 ปีที่แล้ว +1

    спасибо

  • @osvab000
    @osvab000 3 ปีที่แล้ว +3

    Немного не понял про ссылку на внутреннюю функцию: say_goodbye (хотя f ссылается как раз на внешнюю функцию. Плюс без всяких ссылок такое выражение (см. ниже) тоже работает:
    def say_name(name):
    def say_goodbye():
    print('Не говори мне прощай, ' + name)
    return say_goodbye
    say_name('NAME!')()

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +3

      Нет, переменная f ссылается на say_goodbye, т.к. мы вызываем внешнюю (именно вызываем), а она возвращает уже ссылку на внутреннюю. В видео этот момент корректен.

    • @osvab000
      @osvab000 3 ปีที่แล้ว +1

      @@selfedu_rus Понял, спасибо (не разобрался с вызовом и возвратом функции).

  • @ЭдуардЗвонарёв-л9щ
    @ЭдуардЗвонарёв-л9щ 3 หลายเดือนก่อน +1

    Есть вопрос: почему только в одном примере использовали "nonlocal"?
    За видеоролик ОГРОМНОЕ Вам спасибо :)

    • @ЭдуардЗвонарёв-л9щ
      @ЭдуардЗвонарёв-л9щ 3 หลายเดือนก่อน

      Нашёл ответ в комментариях :)
      Потому что мы меняем значение переменной. Если не изменяли бы, nonlocal бы был не обязателен

  • @ХалилМаденбай
    @ХалилМаденбай 3 ปีที่แล้ว +1

    коментарии только для продвижения видео, спасибо

  • @mlavrentev9106
    @mlavrentev9106 3 ปีที่แล้ว +3

    Как я понял, это Лутц на пальцах. Если я прав, то просьба к Сергею. Если у Вас появиться желание, пробегитесь так же по его книге Программируем на пайтон. Она так дрянно переведена на русский, что я её осиливал пол года. Новичкам это будет путевка на работу

    • @rozavaganova1363
      @rozavaganova1363 3 ปีที่แล้ว

      Пожалуйста, уточните автора и название на Английском

  • @x-user-agent
    @x-user-agent 3 ปีที่แล้ว +7

    спасибо👍 может юных падаванов стразу к f-строкам приучать?

    • @ЛаоЦзы-я1ъ
      @ЛаоЦзы-я1ъ 2 ปีที่แล้ว

      Он так и делает во многих уроках использует именно их )

  • @romanbush5164
    @romanbush5164 3 ปีที่แล้ว +2

    Ничоси

  • @АлександровДмитрий-х7п
    @АлександровДмитрий-х7п 2 ปีที่แล้ว +2

    Здравствуйте, Сергей. Вы сказали, что замыкание держится, пока существует ссылка f. Но если этой ссылки f не будет, то замыкание же продолжит существовать, и переменные из внутренней функции будут видеть переменные из внешней функции. Правильно ли это? И будет ли функция называться замыканием, если внутренняя функция не использует переменные внешней функции?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +1

      формально, думаю, будет, т.к. здесь смысл не в фактическом использовании внутренней функции переменных внешней, а то, что область видимости внутренней функции ссылается на область видимости внешней функции - это и образует замыкание

    • @АлександровДмитрий-х7п
      @АлександровДмитрий-х7п 2 ปีที่แล้ว

      @@selfedu_rus Спасибо

  • @ayqikz
    @ayqikz ปีที่แล้ว +1

    legend

  • @КамильКамиль-у1з
    @КамильКамиль-у1з ปีที่แล้ว +1

    В первом примере внешняя функция(say name) принимает параметр name и он становится доступен для вложенной функции, почему тогда в случае с счетчиком необходимо приписывать nonlocal для start?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      потому что мы меняем значение переменной start (если значение только читается, то nonlocal необязателен)

  • @Андрей-п4ч2м
    @Андрей-п4ч2м 2 ปีที่แล้ว +2

    А где взять практическое задание?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      ссылка на Stepik в описании видео

  • @Nonstop4ik
    @Nonstop4ik 2 ปีที่แล้ว +1

    было бы круто, если бы вы показали практическое применение. совсем неясно куда это можно применить

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +3

      в декораторах

  • @АленаМищенко-в1т
    @АленаМищенко-в1т 3 ปีที่แล้ว +1

    👍👍👍

  • @Юлия-ч9с6й
    @Юлия-ч9с6й 2 ปีที่แล้ว +1

    Сколько таких функций внутри функций позволительно делать?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +1

      чем меньше, тем лучше, иначе читаемость кода теряется

  • @RuMax_77
    @RuMax_77 3 ปีที่แล้ว +1

    Не понял момента, разъясните, пожалуйста: c1 = counter(10) = 11
    Почему последующие print(c1) выводит значения увеличенные на единицу, ведь каждый раз в функцию counter() передается аргумент "10"? Т.е принт должен три раза вывести "11".

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +4

      Нет, там один раз вызывается функция c1 = counter(10) переменная c1 ссылается на внутреннюю функцию и, затем, вызывается именно эта внутренняя функция, увеличивая значение локальной переменной step.

  • @Pivaaqee
    @Pivaaqee 3 ปีที่แล้ว +3

    Что? Зачем? Как?

  • @impellergimpeller5133
    @impellergimpeller5133 3 ปีที่แล้ว

    У вас замыкания? Ни слова больше ...🔨🔨🔨🔨🔨

  • @Anna_tails
    @Anna_tails ปีที่แล้ว +1

    молодец что угодал моё имя в начае ролика

  • @ibrahimoglu
    @ibrahimoglu 3 ปีที่แล้ว +1

    👍

  • @andreybrit7015
    @andreybrit7015 2 ปีที่แล้ว

    Добрый день . Подскажите где находятся практические задания о которых идет речь в видео. Больше спасибо.

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      под видео ссылка на stepik

  • @Vanile-ph5wq
    @Vanile-ph5wq 8 หลายเดือนก่อน +1

    А зачем возвращать функцию, если для этого предназначены классы?

  • @DobroDelo
    @DobroDelo 2 ปีที่แล้ว +1

    th-cam.com/video/sJF7OMNgLUs/w-d-xo.html Вопрос: Почему в этом примере не используем nonlocal для переменной strip_chars ?

    • @DobroDelo
      @DobroDelo 2 ปีที่แล้ว +1

      нашел ответ Сергея на этот вопрос в коментариях на stepik:
      "локальные переменные из другой связанной области видимости можно спокойно использовать, но только для считывания информации, если же мы собираемся их менять, т.е. применять оператор присваивания, то нужно перед этим указать nonlocal, иначе, будет создана новая переменная в текущей области видимости"

  • @ural-site
    @ural-site ปีที่แล้ว +1

    Поставил бы 100 лайков

  • @MikiFunChannel
    @MikiFunChannel 2 ปีที่แล้ว

    А основное назначение то какое? Зачем они нужны то, если все тоже самое можно сделать с помощью обычных функций? Разве что в голову приходит кейс, когда на основе одной такой фабрики можно наделать кучу разных экземпляров передав им разные параметры при вызове фабрики, и далее их переиспользовать в коде, ну т.е. использовать ее как фабрику функций...

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว +1

      декораторы, как развитие замыканий, а они уже используются повсеместно от Django и Flask до нейросетей

    • @lastloony
      @lastloony 2 ปีที่แล้ว

      @@selfedu_rus мм, значит просто не дошли до этого еще?) а я то думаю, зачем они нужны, если можно через класс создавать счетчики и они будут работать также как в видео показано

    • @ОлегД-е5э
      @ОлегД-е5э 2 ปีที่แล้ว +1

      "А основное назначение какое?" - да, ни какое. Важно понимать, что Замыкание не создавалась Специально и осознанно как отдельная и самостоятельная конструкция какого-либо языка программирования. Замыкание - это неочевидное следствие (с довольно "экзотическими" свойствами в сравнении со свойствами обычных функций) одного из базовых и более фундаментальных правил языка программирования (наверное, любого языка программирования). Это фундаментальное правило, в вульгарном варианте, звучит примерно так - Функция хранит внутри себя только первоначальные ссылки на переменные, участвующие в вычислении результата функции. Без соблюдения этого принципа такую вычислительную процедуру, как Функция, определить корректно не получится. Поэтому, основного назначение у Замыкания нет. Полагаю, что "экзотичность" свойств и элегантность кода является причиной столь высокой популярности Замыкания (Вот в Lua, Декораторов нет, а Замыкание - есть) . С прикладной точки зрения, на мой взгляд, Фабрика Клонов Вложенной функции, вероятно, наиболее разумная область применения Замыкания (тем более, когда изначальное количество Клонов не определено ).

    • @Anton16180
      @Anton16180 2 ปีที่แล้ว

      @@ОлегД-е5э Это лучшее определение, которое я только видел, спасибо вам.
      Подскажите источник пожалуйста ^^

    • @ОлегД-е5э
      @ОлегД-е5э 2 ปีที่แล้ว +2

      @@Anton16180 Антон, первоисточника нет. В посте выше я изложил свои мысли на тему Замыкания (правильнее было бы назвать это "Семплирование вложенной функции"). Изучая Пайтон, я, на сегодняшний день, не нашел не одного источника (книга, видео или интернет ресурс) где бы качественно и глубоко был изложен Пайтон. Думаю, что и в Яндекс.Практикуме язык Пайтон излагается по такому же "описательному" принципу. Видеокурсы о Сергея Балакирева - это лучшее, что есть, на мой взгляд (путь это только путеводитель) по языку Пайтон. Видеоуроки Сергея позволяют кратно уменьшить время и усилия на самостоятельное изучение языка, за что Сергею всегда выражаю искреннею благодарность!
      Основная претензия ко всем источникам - это ОПИСАТЕЛЬНЫЙ характер обучения языку - вот видят на экране какой-то объект (пусть метод какой-то), начинают его применять к другим разным объектам (к спискам, словарям и т.д.), показывают результат и говорят - "Вот, смотрите, что получается. Это работает так!" Что это - обучение, нет! У всех подход такой, будто изучаемый "метод" - это "черный ящик", что внутри - не знаем, но можем на вход подавать разные "сигналы", смотреть, что получаем на выходе. А если мы не все возможные варианты объектов подали и что-то упустили... Но, если изложить общий механизм работы изучаемого метода ( представить работу в виде таблиц или блок-схемах, как Сергей это иногда делает). Тогда и примеры не особенно нужны, поскольку результат и так понятен. И останется только продемонстрировать как изучаемый метод работает в "специальных сложных" случаях.
      В заключении. Что можно использовать. Наткнулся относительно недавно, на обзор книг по Пайтону от Никиты Шультайс (это не реклама, обзор интересный, все остальное - не интересно). Этот обзор состоит из совершенно шедевральных рецензиях на каждую книгу - поэмы, а не рецензии, класс! Беда в том, что рецензии оказались лучше самих книг (то, что меня заинтересовало - везде "Описательное обучение"). Но, в обзоре приведено несколько книг, где разбирается реализация вполне конкретных и работоспособных программ на Пайтоне, разного уровня сложности. Вот их можно использовать в качестве второго контура обучения, когда теория пройдена и кажется, что ты все знаешь, то разбор реального кода позволяет все расставить на свои места. Удачи!

  • @Александр-л8я1я
    @Александр-л8я1я 3 ปีที่แล้ว +1

    Может будет возможность создать курс лекций про программирование квантовых вычислений. У Вас очень хорошо получается объяснить сложные темы простым языком

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +1

      Знать бы еще эти квантовые вычисления =)

  • @r6_3600
    @r6_3600 ปีที่แล้ว +1

    очень тяжко идет понимание

  • @polgusha
    @polgusha ปีที่แล้ว

    А зачем это все таки нужно в практическом плане. Ведь можно написать функцию которая будет принимать и строку, и символы которые нужно удалить.

  • @timohahahehehe
    @timohahahehehe 2 ปีที่แล้ว

    4:15

  • @Receive_
    @Receive_ 2 ปีที่แล้ว +1

    А где практические задания?

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      ссылка под видео

  • @mikhailmozerov9021
    @mikhailmozerov9021 2 ปีที่แล้ว

    конструкция с замыканием счетчиков не работает (скопировал один в один)

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      работает, скопировали неверно, наверняка написали return step() вместо return step

  • @ninodor26
    @ninodor26 2 ปีที่แล้ว +1

    мы тут сделали оптимизацию памяти и теперь в range твоего for хранятся указатели на константы со всей оперативки. и вот еще смотри как прикольно происходит, назовем это фичей ооп...

  • @TheBaragoz
    @TheBaragoz 20 วันที่ผ่านมา +1

    я все равно ничего не понимаю в этих замыканиях(

  • @GhoST050398
    @GhoST050398 ปีที่แล้ว

    зачем мы делаем функцию внутри функции? Зачем так усложнять?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      для создания декораторов, например, а декораторы везде и всюду, например, в Django, DRF, Flask и т.д.

  • @Dmitriitube
    @Dmitriitube ปีที่แล้ว

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

  • @GhoST050398
    @GhoST050398 ปีที่แล้ว +1

    Зачем все это?

    • @selfedu_rus
      @selfedu_rus  ปีที่แล้ว

      для создания декораторов, например, а декораторы везде и всюду, например, в Django, DRF, Flask и т.д.

  • @user-wu7ec4vv3i
    @user-wu7ec4vv3i ปีที่แล้ว

    Перечитываешь параграфы Лутца пока не умоешься кровавыми слезами и сюда, залечивать психологическую травму😇

  • @falzyyy
    @falzyyy 4 หลายเดือนก่อน +1

    Спасибо