Курс 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. Капитализация строк
  3. Создание веб-приложения с Flask
  4. Эффективная конкатенация строк в Python
  5. Функции min(), max(), sum()
  6. Функции map() и reduce() в Python
  7. Генераторы в Python
  8. Генераторы в Python
  9. Подсчет частотности элементов в Python
  10. Combobox в Tkinter
  11. Вывод баннеров
  12. Работа с очередями в Python
  13. Хеши в Python
  14. Создание матрицы в Python
  15. Объединение списков в Python
  16. Форматирование чисел в Python
  17. Библиотека funcy: удобные утилиты
  18. Определение объема памяти объекта
  19. Создание словарей в Python
  20. Объединение списков в строку
  21. Сортировка с помощью key
  22. Метод getitem для доступа к элементам последовательности
  23. Добавление элементов в список: append() vs extend()
  24. Модуль pprint
  25. Метод setdefault() в Python
  26. Numpy: разбиение массивов
  27. Оптимизация параметров в Python
  28. HTTP-запросы с библиотекой Requests
  29. Блок else в Python
  30. Работа с временем в Python
  31. Операторы сравнения в Python
  32. Beautiful Soup — извлечение данных из HTML
  33. Работа со строками
  34. JMESPath в Python
  35. Добавление элемента в список.
  36. Генерация тестовых данных с factory_boy
  37. Цикл for в Python
  38. Переворот строки с использованием цикла
  39. Работа с функцией next() в Python
  40. Принципы SRP и OCP
  41. Импорт в Python: список all
  42. Управление доступом к модулю
  43. Замер времени выполнения кода
  44. Форматирование строк в Python
  45. Python: Фильтрация списков с помощью filter()

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