Курс Python → Генераторы в Python

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

Для создания собственного итерабельного класса в Python необходимо определить метод __iter__, который будет возвращать итератор. Однако, вместо того чтобы создавать отдельный класс для итератора, можно воспользоваться генераторами для упрощения этого процесса. Функция-генератор представляет собой обычную функцию, в теле которой используется ключевое слово yield для возврата значений.


class MyIterableClass:
    def __iter__(self):
        for i in range(5):
            yield i

В данном примере класс MyIterableClass является итерабельным благодаря методу __iter__, который использует функцию-генератор для возврата значений от 0 до 4. При обращении к объекту данного класса в цикле for, значения будут генерироваться по мере необходимости.

Таким образом, использование генераторов для создания итераторов и итерабельных классов в Python позволяет упростить и ускорить процесс разработки, а также сделать код более читаемым и эффективным. Благодаря гибкости и удобству генераторов, программисты могут легко создавать итерируемые объекты без необходимости создания отдельных классов итераторов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Работа со списками
  2. Переопределение метода delitem в Python
  3. Проверка элементов списка условием
  4. Работа с итераторами в Python
  5. Улучшенные подсказки для импорта в Python 3.12
  6. Метод __index__ в Python
  7. Многострочные комментарии в Python
  8. Поиск повторов в списке
  9. Библиотека sh: удобные команды терминала
  10. Открытие, чтение и закрытие файла
  11. Генерация UUID в Python
  12. Обновление ключей в Python
  13. Распаковка аргументов в Python
  14. Область видимости переменных
  15. Оператор умножения для вектора
  16. Создание новых функций через partial
  17. Работа с путями в Python
  18. Flask — веб-фреймворк Python
  19. Работа с NumPy.linalg
  20. Python Enumerate
  21. Определение относительного пути
  22. Генераторные функции в Python
  23. Создание пустых функций и классов в Python
  24. Методы Python для работы с данными
  25. Форматирование вывода с F-строками
  26. Оператор zip в Python
  27. Преобразование строк в числа в Python
  28. Определение основы слова с showballstemmer
  29. Вывод букв строки в Python
  30. Генерация резюме в Gensim
  31. Python Метод del.
  32. Таймер обратного отсчета
  33. Вычисление времени выполнения
  34. Многострочные комментарии в Python
  35. Проверка условий: all и any
  36. Многопоточность и асинхронное программирование в Python
  37. Обновление множества в Python
  38. Работа с массивами в Python
  39. Подсчет частоты элементов с Counter
  40. Оформление текста в консоли с TermColor
  41. Запуск внешнего кода в Jupyter
  42. Основы Python за 14 дней
  43. Поиск шаблона в начале строки
  44. Генерация фальшивых данных с Faker
  45. Строки в Python: апострофы и кавычки
  46. Работа со строками в Python
  47. Поиск шаблона в строке
  48. Метод rsub в Python: расширение функциональности вычитания

Marketello читают маркетологи из крутых компаний