Курс 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"
- Применение промокода в Много лосося
- Создание панели меню Tkinter
- Лимиты на ресурсы Python
- Defaultdict в Python
- Статическая типизация в Python
- Вывод переменной и строки в Python
- Перегрузка операторов в Python
- split() — разделение строки
- Вывод с переменной через запятую
- Возвращение нескольких значений через кортеж или класс
- Отладка в Python
- Оператор «is not» в Python
- Инвертирование словаря
- Создание матрицы в Python
- Работа с Enum в Python3.
- Асинхронное выполнение задач в процессах
- Запуск внешнего кода в Jupyter
- Отношения подклассов в Python
- Переменные класса и экземпляра
- Создание циклической ссылки
- Создание словаря с значением по умолчанию
- Передача аргументов через **arguments
- Создание уникального проекта
- Отправка HTTP-запросов в Python
- Фильтрация данных в Python.
- Операторы += в Python
- Генератор надежных паролей
- Оценка выражений генератора в Python
- Изменения в обработке логических значений
- Обучение модели с указанием эпох
- Обработка исключений
- Циклы for в Python
- Оператор is в Python
- UserString в Python
- Фильтрация входных данных в Python
- Проверка однородности элементов списка
- Работа с CSV файлами в Python
- Функция rsplit() в Python
- Многопоточность в Python
- Импорт модулей в Python 3.12
- Переворот списка в Python
- Методы classmethod и staticmethod
- Принципы SRP и OCP
- Проблемы с именами переменных
- Хранение данных
- Работа с zip()
- Использование функции product















