Курс 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"
- Генерация тестовых данных с factory_boy
- Множественное назначение в Python
- Получение текущей даты в Python
- Аннотации типов в Python
- Обход элементов в Python
- Измерение времени выполнения кода
- Декораторы в Python
- Метод rpow в Python
- Обмен значений переменных в Python
- Освобождение памяти в Python
- Удаление falsy-значений из списка с помощью filter
- Тернарный оператор в Python
- Работа с атрибутом dict
- Функциональное программирование.
- Оптимизация гиперпараметров с Scikit Optimize
- Глобальные переменные в Python
- Метод splitlines() для разделения строк
- Округление дробей в Python
- Преобразование данных в Python
- Python UserString — создание подклассов строк
- Особенности запятых в Python
- Замена текста с re.sub()
- Структурирование данных с Pydantic
- Просмотр атрибутов и методов класса
- Обработка ошибок в JSON данных
- JMESPath в Python
- Присвоение значений переменным в Python
- Оператор in для проверки наличия элемента
- Область видимости переменных
- Поиск с помощью регулярных выражений
- Работа с *args и **kwargs в Python
- Удаление ссылок в Python
- Конструктор в Python
- Распаковка аргументов в Python
- Преобразование в float
- Работа с файлами в Python
- Комментарии в Python
- Использование функции enumerate()
- Создание словарей с defaultdict
- Получение частей дроби
- Python Метод sleep() из time
- Создание списков в Python
- Numpy: объединение массивов
- Flask — веб-фреймворк Python
- Создание множества в Python















