Курс 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
- Работа с PosixPath() в Python
- Замыкания в Python
- Определение имен функций
- Проверка индексов коллекции
- Создание списка через итерацию
- Сравнение def и lambda-функций
- Метод rename() для переименования файлов и каталогов
- Работа со случайными элементами
- Разработка Telegram-ботов
- Выбор редактора кода.
- Создание функций высшего порядка
- Ограничение итераций в Python
- Установка и использование Python-dateutil
- lru_cache оптимизация функций
- Управление импортом в Python
- Удаление элементов во время итерации
- Получение размера объекта с sys.getsizeof()
- Пропуск строк в файле с itertools
- Отладка в командной строке
- Сортировка данных с лямбда-функциями
- Генераторы в Python
- Скрытие вывода данных
- Разделение функций на этапы
- Подсчет элементов в списке с Counter
- TypedDict для kwargs в Python 3.12
- Методы в Python
- Подсчет частотности элементов в Python
- Объединение словарей в Python
- Функция eval() в Python
- Решатель судоку на Python с pygame
- Форматирование строк с f-строками
- Очистка вывода в Python
- Удаление дубликатов из списка
- Методы list в Python
- Операции с массивами в NumPy
- Разделение строки на пары ключ-значение.
- Объединение словарей в Python
- Ограничение ресурсов в Python
- Python union() функция — объединение множеств
- Управление ресурсами в Python
- Форматирование строк в Python
- Работа с каталогами в Python
- Создание Telegram-бота на Python















