Как я могу запустить код инициализации для функции генератора сразу, а не при первом вызове?

У меня есть функция генератора, которая выглядит примерно так:

def mygenerator():
    next_value = compute_first_value() # Costly operation
    while next_value != terminating_value:
        yield next_value
        next_value = compute_next_value()

Я бы хотел, чтобы этап инициализации (перед циклом while) выполнялся сразу после вызова функции, а не только тогда, когда генератор используется первым. Как это сделать?

Я хочу это сделать, потому что генератор будет работать в отдельном потоке (или процессе, или в другом, что используется в многопроцессорной обработке), и я не буду использовать возврат в течение короткого времени, И инициализация довольно затратна, поэтому я хотел бы, чтобы она выполнила инициализацию, пока я собираюсь использовать значения.

12
задан Ryan C. Thompson 27 April 2015 в 09:38
поделиться