Подтвердить что ты не робот

Как написать функцию генератора Python, которая никогда ничего не дает

Я хочу написать функцию генератора Python, которая никогда ничего не дает. В принципе, это "нечего делать", которое может использоваться другим кодом, который рассчитывает вызвать генератор (но не всегда нуждается в его результатах). Пока у меня есть это:

def empty_generator():
    # ... do some stuff, but don't yield anything
    if False:
        yield

Теперь это работает нормально, но мне интересно, есть ли более выразительный способ сказать то же самое, т.е. объявить функцию генератором, даже если она никогда не даст никакого значения. Трюк, который я использовал выше, - показать Python выражение yield внутри моей функции, даже если оно недоступно.

4b9b3361

Ответ 1

Другой способ -

def empty_generator():
    return
    yield

Не совсем "более выразительно", но короче.:)

Обратите внимание, что iter([]) или просто [] будет делать также.

Ответ 2

Еще более короткое решение:

def empty_generator():
  yield from []

Ответ 3

Edit:

Это не работает - читайте комментарии


Вы не можете просто yield None? Похоже, мне было бы легче читать.