В выдержке из PEP все перечисления перечислены рядом в одном и том же списке, но выражение генератора сильно отличается от других.
Не существует такой вещи, как "tuple
понимание ".Аргумент tuple()
создает асинхронный генератор:
tuple(num async for num in result_generator())
Строка эквивалентна tuple(result_generator())
.Затем кортеж пытается выполнить итерацию по генератору синхронно и поднимает TypeError
.
. Однако остальные понимания будут работать, как и ожидалось.Таким образом, можно сгенерировать кортеж, сначала собрав его в список, например:
async def result_tuple():
async def result_generator():
# some await things happening in here
yield 1
yield 2
return tuple([num async for num in result_generator()])