Курс 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
- Сортировка и обратный порядок
- Хэш-функции в Python
- Преобразование текста в речь с Python
- Получение имени функции с помощью inspect
- Colorama: окрашивание текста в Python
- Класс UserDict: дополнительная функциональность
- Использование эмодзи в Python
- Lambda Functions in Python
- Капитализация строк
- Список импортированных модулей в Python
- Отправка HTTP-запросов в Python
- Избегание циклических зависимостей классов в Python
- Проверка подстроки в строке
- Игра «Виселица» на Python
- Оператор морж в Python 3.8
- Многопроцессорное программирование в Python
- Работа с переменными в Python
- Генераторы в Python
- Работа с исключениями в Python
- Генерация QR-кодов с Python
- Склеивание строк через метод join()
- Метод matmul для умножения матриц
- Преобразование типов данных в set comprehension
- Генераторы в Python
- Numpy: объединение массивов
- Создание таблиц в Python с PrettyTable
- Транспонирование 2D-массива с помощью zip
- Основы работы со списками
- Установка и использование pyshorteners
- GitHub в Telegram: подписка на уведомления
- Создание пар из последовательностей
- Группы исключений в Python
- Работа с индексами списков
- Работа со словарями в Python
- Функция enumerate() в Python
- Введение в PyTorch
- Python: динамическая типизация и проверка типов
- Работа с WindowsPath()
- Метод enumerate() в Python
- Метод join() для объединения элементов
- Декораторы в Python
- Установка и использование Virtualenv















