Курс 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. Срез в Python
  2. Counter() — подсчет элементов
  3. Метод join() для объединения строк
  4. Numpy: объединение массивов
  5. Создание Radio кнопок в tkinter
  6. Добавление элемента в список.
  7. Поиск элементов BeautifulSoup
  8. Лямбда-функции в defaultdict
  9. Виртуальное окружение Python
  10. Приближение чисел в Python
  11. Нахождение хеша для бесконечности и NaN в Python
  12. Работа с файлами в Python
  13. Блок try…finally в Python
  14. Оператор match в Python
  15. Работа с комплексными числами
  16. Mad Libs Generator
  17. Модуль xkcd: загрузка комиксов
  18. Сумма элементов списка
  19. Копирование списков в Python
  20. Распаковка с оператором *
  21. Проверка вхождения подстроки
  22. Тестирование модели в PyTorch
  23. Управление доступом к модулю
  24. Работа с комплексными числами
  25. Модуль math: основные функции
  26. Возврат нескольких значений из функции
  27. Генераторы списков
  28. Резервирование символов в Python
  29. Обработка исключений в Python 3
  30. Структурирование именованных констант
  31. Работа с CSV в Python
  32. Цепные операции в Python
  33. Установка и использование Logzero
  34. Работа с WindowsPath()
  35. Декораторы в Python
  36. Concrete Paths — метод .with_suffix()
  37. Реверс строки и списка в Python.
  38. Работа с модулем bisect
  39. Защита данных в Python
  40. Сравнение объектов в Python
  41. Функция sleep() в Python
  42. Работа со строками в Python
  43. Присоединение элементов коллекции

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