Что такое итерируемый объект (iterable)
less_09__for__nested_loops__range/theory_01__what_is_iterable.md
Даёт два определения итерируемого объекта: строгое (объект с __iter__() или __getitem__(), который можно передать в iter()) и простое универсальное («объект, способный возвращать по одному своему элементу за раз» — цитата из глоссария Python). Показывает практическую проверку через isinstance(obj, Iterable) из typing на примере int (не итерируем) и str (итерируем).
- Строгое определение: __iter__() / __getitem__() и функция iter()
- Простое определение из глоссария Python: возвращает элементы по одному
- from typing import Iterable
- isinstance(digits, Iterable) == False для int
- isinstance(num_str, Iterable) == True для str
Показать начало файла (29 строк всего)
## Что такое "итерируемый объект" (`iterable`) ?
### Строгое (но непонятное) определение:
Итерируемый объект (`iterable`) — это объект,
у которого есть метод `__iter__()` или метод `__getitem__()` (с индексами, начиная с 0).
Такой объект можно передать в функцию `iter()`, чтобы получить итератор.
Это определение подходит исключительно к Python, поскольку у других языков
программирования используются иные механизмы итерации.
### Простое и универсальное определение итерируемого объекта (`iterable`):
[*An object capable of returning its members one at a time.*](https://docs.python.org/3/glossary.html#term-iterable)
**Объект, способный возвращать по одному своему элементу за раз.**
## Как убедиться, что объект итерируемый ?
```python
from typing import Iterable
digits = 123456789
num_str = "123456789"
print(isinstance(digits, Iterable))
print(isinstance(num_str, Iterable))
```