Простая функция-генератор. Для чего нужен yield

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 มี.ค. 2021
  • Рассмотрим, что такое функция-генератор, в чем ее особенности и плюсы.
    Любая функция, содержащая ключевое слово yield является функцией-генератором (независимо от наличия return) и при вызове возвращает объект-генератор.
    Важные моменты:
    1) ленивый, не выполняется пока не попросить значение
    2) одноразовый -при исчерпании кидает StopIteration (в for этого не видно, ибо обрабатывается внутри)
    3) после выполнения yield встает на паузу, при этом сохраняет все внутреннее состояние (аргументы, локальные переменные)
    4) при повторном запросе (next) продолжает работу с места остановки
    Удобен при работе с большими данными, но и в целом может применяться там, где нам нужно получать наборы данных, обрабатывать их.
    Ссылки:
    docs.python.org/3/glossary.ht...
    docs.python.org/3/reference/s...
    docs.python.org/3/reference/e...
    docs.python.org/3/tutorial/cl...
    docs.python.org/3/reference/e...
    Присоединяйся к помощи каналу, будет интересно)
    ✔️Бусти boosty.to/python_russian/donate
    ✔️Юмани 410011506612886
    Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
    #Python #PythonRussian #PyCharm

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

  • @user-tv9xp7uf6z
    @user-tv9xp7uf6z 14 วันที่ผ่านมา

    какой ты красавчик!!! очень четко все обьяснил!

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

    Мужик, ты очень крутой. Спасибо от души.

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

    отличный пример сравнения с ленивостью и пинком ! очень наглядно и конструктивно вложилось в голову что и как ! спасибо !

  • @user-nq7wi3bc8r
    @user-nq7wi3bc8r 8 หลายเดือนก่อน

    отличное объяснение важного свойства генератора!!

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

    Очередной раз благодарю 👍😎👍

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

    Автор, спасибо огромное. За видео.

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

    учитель от Бога

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

    Полезное видео, спасибо

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

    Отлично. Благодарю.

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

    Спасибо!

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

    Большое спасибо за видео! Всё, как всегда, на высоте! Не задумались сделать серию роликов про алгоритмы и структуры данных с примерами использования? Думаю, что новичкам будет полезно посмотреть видео в Вашем исполнении - с подробными объяснениями и практическими примерами!

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

      идея хорошая, записал себе в список (или тапл?)

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

      @@PythonRussian лучше в тапл, чтобы видео точно вышло)

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

      По алгоритмам и структурам данных лучше было бы заморочиться и платный курс сделать на Степике, там как раз не хватает на эту тему хорошего курса

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

      По алгоритмам и структурам данных лучше было бы заморочиться и платный курс сделать на Степике, там как раз не хватает на эту тему хорошего курса

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

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

    Как пользоваться генераторам в другой функции генератор ?

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

    23:08 Да вообще-то и обычная функция может возвращать и объекты классов, и другие функции.

  • @user-dr2lc4wu6p
    @user-dr2lc4wu6p 3 หลายเดือนก่อน

    Не могу понять чем отличается генератор от итератора. Можете пояснить

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

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

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

    По сути, генератор - это итератор, так как он одноразовый. Правильно?

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

      все верно! Генератор является итератором, он по сути его наследник, добавляющий к методам итератора(next) еще и send, close, throw. Тебе пора сменить ник, все понимаешь верно

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

      @@PythonRussian хахаха, ник надо поменять, это точно

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

    впервые встречаю не мутное объяснение генератора python

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

    отвал башки!)... ((с)что-то на олдскульном)

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

      Отвал башки это олдсульно?! 😅 капец

  • @user-fm1mv8fo4h
    @user-fm1mv8fo4h ปีที่แล้ว +1

    Спасибо!