Курс 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
- Метод pop() списка
- Метод init в Python
- Изменяемые и неизменяемые объекты
- Профилирование с cProfile
- EMOT преобразование эмодзи в текст
- Функция enumerate в Python
- Запуск внешних программ с subprocess
- Эффективная конкатенация строк с использованием join()
- Списки в Python
- Проверка подстроки в строке
- Итераторы с потерямиZIP
- Функция zip() — объединение последовательностей
- Перезагрузка оператора в Python
- Работа с необработанными строками
- Форматирование объектов с модулем pprint
- Форматирование строк в Python.
- Метод get() для словарей
- Преобразование объекта в строку
- Перевернуть список в Python
- Работа с переменными в Python
- Применение функции к каждому элементу списка
- Обновление шаблона base.html
- Группировка элементов в словарь
- Работа с WindowsPath()
- Работа с файлами в Python
- Получение идентификатора объекта в памяти
- Очистка входных данных
- Декоратор Property в Python
- Flask: создание веб-приложений
- Аннотации типов в Python
- Создание директории в Python
- Пространство имен в Python
- Объединение словарей в Python
- PATCH-запрос с библиотекой requests
- Оператор деления для класса Rational
- Управление пакетами с pip
- Списки в Python: синтаксис представления
- Тестирование с responses
- Функция с **kwargs в Python
- Удаление символа из строки















