Курс 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. Очистка вывода в Python
  3. Проверка существования переменной с оператором :=
  4. Удаление элемента по индексу
  5. Распаковка аргументов в Python
  6. Работа со словарями с defaultdict из collections
  7. Комментарии в Python
  8. Создание namedtuple из словаря
  9. Утечки переменных цикла в Python 3.x
  10. Работа с эмодзи в Python
  11. Обмен данными с asyncio.Queue
  12. Открытие, чтение и закрытие файла
  13. Делегирование в Python
  14. Оператор «not» в Python
  15. Работа с каталогами в Python
  16. Библиотека Rich: форматирование текста
  17. Генерация QR-кодов с Python
  18. Работа с дробями в Python
  19. Проверка элементов списка условием
  20. Работа со строками в Python
  21. Фильтрация списка от «ложных» значений
  22. Поиск частых элементов в списке
  23. Фильтрация последовательности
  24. CLI-инструмент howdoi
  25. Перебор элементов списка в Python
  26. Работа с пакетами
  27. Функциональное программирование.
  28. Конвертация коллекций в Python
  29. Работа с путями в Python
  30. Генераторы в Python
  31. Назначение максимального и минимального значения переменной в Python.
  32. Создание уникального множества
  33. Введение в PyTorch
  34. Работа с комплексными числами в Python
  35. Переменная с нижним подчеркиванием
  36. Создание объекта timedelta
  37. Переопределение метода
  38. Работа с timedelta в Python
  39. Работа с IP-адресами в Python
  40. Сравнение строк в Python
  41. Генерация случайных чисел в Python
  42. Многопоточность и асинхронное программирование в Python
  43. Логический оператор «and» в Python
  44. Создание даты из строки ISO

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