40 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: Python Iterators
 | ||
| localeTitle: Итераторы на Python
 | ||
| ---
 | ||
| Python поддерживает концепцию итерации по контейнерам. Это реализовано с использованием двух различных методов; они используются, чтобы позволить пользовательским классам поддерживать итерацию.
 | ||
| 
 | ||
| [Документы Python - Типы итераторов](https://docs.python.org/3/library/stdtypes.html#iterator-types)
 | ||
| 
 | ||
| Итерация - это процесс программного повторения шага определенное количество раз. Программист может использовать итерацию для выполнения одной и той же операции для каждого элемента в коллекции данных, например, для распечатки каждого элемента в списке.
 | ||
| 
 | ||
| *   Объекты могут реализовать `__iter__()` который возвращает объект итератора для поддержки итерации.
 | ||
|     
 | ||
| *   Объекты Iterator должны реализовывать:
 | ||
|     
 | ||
|     *   `__iter__()` : возвращает объект итератора.
 | ||
|         
 | ||
|     *   `__next__()` : возвращает следующий объект контейнера.
 | ||
|         
 | ||
|     
 | ||
|     итератор _object = 'abc'. **iter** () print (_ объект _итератора_ ) print (id ( _объект_ итератора _)) print (id (iterator_ object. **iter** ())) # Возвращает сам итератор. print (iterator _object. **next** ()) # Возвращает 1-й объект и продвигает итератор. print (iterator_ object. **next** ()) # Возвращает 2-й объект и продвигает итератор. print (iterator _object. **next** ()) # Возвращает 3-й объект и продвигает итератор. print (_ объект _итератора_ **next** ()) # вызывает исключение StopIteration.
 | ||
|     
 | ||
| 
 | ||
| Выход :
 | ||
| ```
 | ||
| <str_iterator object at 0x102e196a0> 
 | ||
|  4343305888 
 | ||
|  4343305888 
 | ||
|  a 
 | ||
|  b 
 | ||
|  c 
 | ||
|  --------------------------------------------------------------------------- 
 | ||
|  StopIteration                             Traceback (most recent call last) 
 | ||
|  <ipython-input-1-d466eea8c1b0> in <module>() 
 | ||
|       6 print(iterator_object.__next__())     # Returns 2nd object and advances iterator. 
 | ||
|       7 print(iterator_object.__next__())     # Returns 3rd object and advances iterator. 
 | ||
|  ----> 8 print(iterator_object.__next__())     # Raises StopIteration Exception. 
 | ||
|  
 | ||
|  StopIteration: 
 | ||
| 
 | ||
| ``` |