В этом уроке по основам Python мы рассмотрим функцию iter()
.
Как правило, функция iter()
возвращает объект итератора для данного объекта. Однако если в качестве параметра передается пользовательский объект, который не реализует методы __iter__()
, __next__()
или __getitem()__
, возникает исключение TypeError
.
Синтаксис:
iter(object, sentinel)
Аргументы:
object
- последовательность либо итератор.sentinel
- значение с которым будет вызываться каждый элемент последовательностиobject
.
Примеры:
list_iterable = [1, 2, 3, 4, 5]
print(type(list_iterable))
list_iter = iter(list_iterable)
print(type(list_iter))
print(next(list_iter))
print(next(list_iter))
print(next(list_iter))
print(next(list_iter))
print(next(list_iter))
print(next(list_iter))
Результат:
>>> <class 'list'>
>>> <class 'list_iterator'>
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
>>> Traceback (most recent call last):
>>> File "C:\Users\Razilator\Desktop\Projects\Coding\articles\iter\main.py", line 14, in <module>
>>> print(next(list_iter))
>>> StopIteration
Пример с объектом:
class IterExample:
def __init__(self):
self.start = 0
def __iter__(self):
return self
def __next__(self):
self.start += 1
return self.start
__call__ = __next__
itr = iter(IterExample(), 6)
for x in itr:
print(x)
Результат:
>>> 1
>>> 2
>>> 3
>>> 4
>>> 5
С помощью примеров выше, мы увидели работу функции iter()
в Python, и как можно ее использовать для преобразования объекта в итератор.