Курс 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
- Возврат нескольких значений из функции
- Подписка на SelectelNews в Twitter
- Обработка ошибок ввода данных
- Конкатенация строк с методом join()
- Инициализация переменных
- Стать Python-разработчиком
- Асинхронное выполнение задач в процессах
- Именованные срезы в Python
- Работа с пользовательским вводом
- Хеши в Python
- Определение объема памяти объекта
- Хранение переменных в Python.
- Декораторы в Python
- Добавление цвета в консоли
- Работа с WindowsPath()
- Моржовый оператор в Python 3.8
- Импорт модулей в Python 3.12
- Функции range() в Python
- Частичное совпадение пользовательского ввода в Python 3.10
- Генерация QR-кодов с библиотекой qrcode
- Дизассемблирование Python кода
- Работа со слайсами
- Функции-генераторы в Python
- F-строки в Python
- Функция map() в Python
- Big O оптимизация
- Расчет времени выполнения кода
- Функции в Python: создание и вызов
- Разделение строки на пары ключ-значение.
- Создание словарей с defaultdict
- Работа с изменяемыми коллекциями
- Обработка исключений с блоком else
- Оператор in для Python
- Метод __float__ в Python
- Замена текста с re.sub()
- Замена элементов в списке с помощью генераторов списков
- Блок else в циклах Python
- Декораторы классов
- Оператор распаковки в Python
- Использование двоеточия в Python
- Создание треугольника Паскаля
- Создание графиков в терминале
- Итерация по копии коллекции















