Курс 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. globals и locals
  2. Использование html-скриптов в Jupyter Notebook
  3. Прокачанный трейсинг ошибок
  4. Ограничение итераций в Python
  5. Измерение потребления памяти при сортировке
  6. Форматирование строк в Python
  7. Python itertools combinations() — группировка элементов
  8. Конвертация коллекций в Python
  9. Поиск кода
  10. Метод rmatmul для обратного матричного умножения
  11. Методы list в Python
  12. Декодирование строк в Python
  13. Генерация QR-кодов с Python
  14. Получение атрибутов и методов класса
  15. Логирование с Logzero
  16. Оценка выражений генератора в Python
  17. Объединение словарей в Python
  18. Python и Монти Пайтон
  19. Исключение NotImplementedError
  20. Создание словарей с defaultdict
  21. Условное добавление элементов в список
  22. Лямбда-функции в Python
  23. Тестирование с unittest
  24. Разделение строки в Python
  25. Участие в сообществе @selectel
  26. Перехват исключений в Python
  27. Отправка HTTP-запросов с User-Agent
  28. Генераторы в Python
  29. Цикл for в Python
  30. Реализация метода __abs__ в Python
  31. Улучшение читаемости кода в Python
  32. Обработка исключений в Python
  33. Модуль os: работа с файлами и папками
  34. Лямбда-функции в Python
  35. Передача неизвестных аргументов в Python.
  36. Concrete Paths в Python
  37. Срезы в Python
  38. Создание списка через цикл
  39. Функция enumerate в Python
  40. Присвоение и ссылки
  41. Отладка в командной строке
  42. Фильтрация последовательности
  43. Метод rmatmul для пользовательских матриц
  44. Модуль array: создание и использование массивов
  45. Определение основы слова с showballstemmer
  46. Контроль точности вывода чисел
  47. Частичное совпадение пользовательского ввода в Python 3.10

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