Курс 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"
- Логирование с Logzero
- Работа со временем в Python
- Библиотека wikipedia для Python
- Форматирование строк в Python.
- Извлечение данных из JSON
- Регистрация на курсы SF Education
- Python: Фильтрация списков с помощью filter()
- Создание словарей в Python
- Функция с *args.
- Обработка исключений в Python
- Модуль math: константы π и e
- Метод __float__ в Python
- Метод enumerate() в Python
- Именованные кортежи в Python
- Изменение элемента списка
- Списковые включения в Python
- Чтение бинарного файла в Python.
- Преобразование символов в нижний регистр
- lru_cache оптимизация функций
- Очистка строки в Python
- Извлечение чисел из текста
- Область видимости переменных
- Создание коллекций из выражения-генератора
- Метод count() для списка
- Сортировка и обратный порядок
- Дизассемблирование Python кода
- Преобразование чисел в Python
- Капитализация строк
- Применение функции к списку
- Работа с асинхронными задачами в Python
- Numpy: объединение массивов
- Декораторы в Python
- Декораторы для регистрации функций
- Работа с базами данных SQLite
- Принципы Zen Python
- Работа с срезами в Numpy
- Проверка однородности элементов списка
- Удаление символов новой строки в Python.
- Метод matmul для умножения матриц
- Python: динамическая типизация и проверка типов
- Объявление переменных в Python
- Bootle — простой веб-фреймворк
- Хэш-функции и метод цепочек
- Округление в Python
- Работа с часовыми поясами в Python
- Обработка ошибок в Python















