Курс Python → Создание итерируемых объектов
Для создания собственных итерируемых объектов в Python, можно использовать классы и специальные методы, такие как метод iter. Например, в данном примере у нас есть класс Squares, который реализует метод iter(self), возвращающий итератор. Итератор — это объект, который поддерживает метод next() и используется для итерации по последовательности значений.
При использовании цикла for для объекта squares, интерпретатор Python вызывает метод iter для получения итератора, а затем последовательно вызывает метод next до возникновения исключения StopIteration. Метод iter возвращает сам объект, так как он также является итератором.
Это удобно, когда мы создаем объекты, которые могут быть использованы в циклах for или других контекстах, требующих итерации. Таким образом, мы можем использовать наши собственные итерируемые объекты в стандартных итерационных конструкциях и управлять процессом итерации с помощью методов iter и next.
class Squares:
def __init__(self, n):
self.n = n
self.i = 0
def __iter__(self):
return self
def __next__(self):
if self.i < self.n:
result = self.i ** 2
self.i += 1
return result
else:
raise StopIteration
В приведенном выше примере кода класс Squares реализует методы __iter__ и __next__ для создания итератора, который возвращает квадраты чисел от 0 до n. Теперь мы можем создать объект этого класса и использовать его в цикле for для итерации по значениям квадратов чисел.
Другие уроки курса "Python"
- Операции с датами в Python
- Модуль math: основные функции
- Изменение IP-адреса в Python
- Экспорт функций в Python
- Обмен переменными в Jupyter
- Python Метод Union Множеств
- Работа с срезами в Python
- Оптимизация строк в Python
- Импорт с альтернативным именем
- Получение комбинаций в Python
- Атрибуты массивов в Numpy
- Добавление элементов в список: append() vs extend()
- Numpy: объединение массивов
- Парсинг статей с Newspaper3k
- Подсчет элементов с помощью Counter
- Область видимости переменных
- Проверка однородности элементов списка
- Преобразование букв в нижний регистр
- Управление IP-адресами через прокси
- Функциональное программирование в Python
- Использование html-скриптов в Jupyter Notebook
- Создание итератора
- Условное добавление элементов в список
- Присоединение элементов коллекции
- Применение функции map() с лямбда-функциями
- Работа с itertools
- Функции range() в Python
- Импорт объектов из модулей
- Динамическая типизация в Python
- Виртуальное окружение Python
- Наиболее частотные элементы с помощью Counter
- Генераторы списков
- Concrete Paths в Python
- Оператор деления для класса Rational
- Модуль itertools: эффективная работа с итераторами
- Создание словаря с значением по умолчанию
- Работа с кортежами в Python
- Проверка элемента в множестве.
- Декораторы в Python
- Установка Git и AWS CLI
- Отправка POST запроса на сервер.
- Python: Фильтрация списков с помощью filter()
- Метод clear для коллекций
- Функция zip() в Python
- Блок try-except-else
- Печать списка с помощью метода join
- Python-dateutil — работа с датами
- Очистка данных с Pandas
- Функция reduce() из модуля functools















