Sobes.tech
Back to questions
Junior — Middle
50

Какие компоненты включает описание типов для генератора?

Answer from AI

sobes.tech AI

Описание типов для генератора в Python обычно включает два основных компонента:

  1. Тип значения, возвращаемого оператором yield — это тип элементов, которые генератор выдаёт при итерации.
  2. Тип значения, возвращаемого функцией генератора при завершении (return) — это тип значения, которое можно получить через исключение StopIteration.

В аннотациях типов для генераторов используется typing.Generator[yield_type, send_type, return_type], где:

  • yield_type — тип значений, которые выдаёт генератор.
  • send_type — тип значений, которые можно отправлять в генератор через метод send() (обычно None, если не используется).
  • return_type — тип значения, возвращаемого при завершении генератора.

Пример:

from typing import Generator

def gen() -> Generator[int, None, str]:
    yield 1
    yield 2
    return "done"

Здесь генератор выдаёт целые числа, не принимает значения через send(), и возвращает строку при завершении.