Курс 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"
- Построение графиков в Matplotlib
- Избегайте пустого списка
- Работа с множествами в Python
- Применение функции к списку
- Объединение объектов в Python
- Создание копии списка в Python
- Метод remove() для удаления элемента из списка
- Defaultdict в Python
- Работа с коллекциями Python
- Разбиение текста в Python
- Сортировка с помощью параметра key
- Мониторинг памяти с Pympler
- Парсинг статей с Newspaper3k
- Работа со строками
- Работа с NumPy
- Удаление специальных символов с помощью re.sub
- Тип CodeType в Python.
- Получение локальных переменных в Python
- Просмотр внешних файлов в %pycat
- Декоратор Ajax required
- Мониторинг работы программы Py-spy
- Создание уникального множества
- Функция zip() — объединение последовательностей
- *args и **kwargs в Python
- Получение ID текущего процесса
- Добавление элементов в список
- lru_cache оптимизация функций
- Итераторы в Python
- Расчет времени выполнения
- Генераторы в Python
- Использование модуля math
- Изучение объектов с помощью dir()
- Регистрация на хакатоне
- Оценка точности модели
- OrderedDict — упорядоченный словарь
- Переопределение метода len
- Работа с областями видимости переменных
- Декораторы для регистрации функций
- Атрибуты массивов в Numpy
- Установка и использование Telegram API в Python
- Изменение объектов в Python
- Обработка ошибок в Python
- Оператор * в Python
- Удаление элементов по срезу
- Преобразование символов в нижний регистр
- Numpy: использование Ellipsis
- Профилирование кода
- Метод join() с набором















