Курс 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. Вызов функций по строке в Python.
  3. Создание генераторов в Python
  4. Считывание бинарного файла в Python
  5. Принципы программирования
  6. Оператор «not» в Python
  7. Модуль Antigravity в Python 3
  8. Функции в Python
  9. Применение функции к списку
  10. Генерация фальшивых данных с Faker
  11. Методы работы со строками в Python
  12. Безопасные SQL-запросы в Python 3.11
  13. Обмен значений переменных в Python
  14. Очистка данных с Pandas
  15. Возврат нескольких значений
  16. Работа с набором данных CIFAR10 в PyTorch
  17. Работа с часовыми поясами в Python.
  18. Многострочные комментарии в Python
  19. Работа с комплексными числами в Python
  20. Копирование в Python
  21. Установка виртуального окружения Python
  22. Быстрый поиск кода
  23. Объединение списков в Python
  24. Разрешение имен в Python
  25. Работа с срезами в Numpy
  26. Избегайте использования goto
  27. TypedDict для kwargs в Python 3.12
  28. Работа со списками
  29. Разделение строк методом split()
  30. Форматирование даты с strftime()
  31. Модуль antigravity: генерация координат
  32. Импорт с альтернативным именем
  33. Проверка на палиндром
  34. Форматирование строк в Python
  35. Работа с CSV файлами в Python
  36. Использование метода lower()
  37. Обход элементов в Python
  38. Python Метод sleep() времени
  39. Изменение объектов в Python
  40. Удаление элементов из списка в Python
  41. Перевернуть список в Python
  42. enumerate() в Python для работы с индексами
  43. Блок else в обработке исключений
  44. Работа с IP-адресами в Python
  45. Скачать видео с YouTube
  46. Определение размера папок в Python
  47. Логирование с Logzero
  48. Удаление ключа из словаря в Python

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