Курс 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. Управление экспортом элементов
  3. Работа с индексами списков
  4. Секреты Python
  5. Преобразование списка в словарь через генератор
  6. Проверка вхождения подстроки
  7. Декораторы в Python
  8. Проверка типов с использованием isinstance
  9. Работа с файлами в Python
  10. Сортировка элементов с OrderedDict
  11. Модуль subprocess: запуск внешних команд
  12. Переопределение метода delitem в Python
  13. Работа с утверждениями в Python
  14. Основные функции и модули Python
  15. Операции с массивами в NumPy
  16. Декораторы в Python
  17. Обработка исключений
  18. Логирование в Python
  19. Работа с базами данных SQLite
  20. Сложение матриц в NumPy
  21. Обязательные аргументы в Python
  22. Работа с набором данных CIFAR10 в PyTorch
  23. Сравнение строк в Python
  24. Слияние словарей в Python 3.9
  25. Модуль pprint
  26. Проверка версии Python
  27. Срез в Python
  28. Генерация тестовых данных с factory_boy
  29. Именованные срезы в Python
  30. Обход дочерних элементов BeautifulSoup
  31. Измерение времени выполнения кода в Python
  32. Поиск наиболее частого элемента в списке
  33. Создание и операции с дробями
  34. Функция enumerate() в Python
  35. Python и Монти Пайтон
  36. Определение объема памяти объекта
  37. Замена символов в Python
  38. Создание GUI на Tkinter
  39. Работа с словарями в Python
  40. Тест скорости набора текста на Python
  41. Генераторы в Python
  42. Оператор break в Python
  43. Создание спинбокса в tkinter
  44. Поиск кода
  45. Разделение функций на этапы
  46. Возведение в квадрат с помощью itertools
  47. Очистка данных с Pandas

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