Курс 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"
- Codecademy в Telegram
- Лямбда-функции в Python
- Подсказки типов в Python
- Переопределение метода len
- Зарезервированные слова в Python
- Работа со случайными элементами
- Создание новых функций через partial
- Возврат нескольких значений
- Оператор space-invader
- Метод Enumerate() для списков
- Создание комплексных чисел
- Прокачанный трейсинг ошибок
- Преобразование текста в речь с Python
- Разрешение имен в Python
- Оператор is в Python
- Магические методы в Python
- Логический оператор «and» в Python
- Проверка вхождения подстроки
- Создание задания в Cron
- Глобальные переменные в Python
- Работа с deque из collections
- Рекурсия для обращения строки
- Изменение логики работы с временем
- Создание списка через цикл
- Метод lt для сортировки объектов
- Замена подстроки
- Обработка исключений в Python
- Использование super() в Python
- Вложенные генераторы в Python
- Генераторы в Python
- Генераторы в Python
- Работа с NumPy массивами
- Списковое включение в Python
- Создание словарей с defaultdict
- Атрибуты класса и экземпляра
- Нан-рефлексивность в Python
- Функция zip() в Python
- Функции с дополнением
- Преобразование данных в Python
- Оператор Walrus в Python 3.8
- Работа с файлами в Python
- Операции с матрицами в Python















