Python Glossary English

Python 3.5+collectionsпонятие

collections.abc.AsyncIterable

collections.abc — протоколы

Протокол «можно перебирать в async for» (есть __aiter__).

Синтаксис

isinstance(obj, collections.abc.AsyncIterable)

Проверка смотрит только на наличие __aiter__ и ничего не гарантирует дальше: перебор всё равно может упасть, если то, что вернёт __aiter__, не умеет __anext__ — за это отвечает более узкий AsyncIterator. И помните, что асинхронно перебираемое не является обычным Iterable: for, list() и itertools с ним не работают, нужен async for или списочное включение вида [x async for x in it].

Примеры

import collections.abc as abc
async def ag():
    yield 1
print(isinstance(ag(), abc.AsyncIterable))   # → True

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности