Existe uma expressão geradora direta que pode produzir elementos infinitos?
Esta é uma questão puramente teórica. Não há necessidade de uma resposta "prática" aqui :)
Por exemplo, é fácil fazer um gerador finito:
my_gen = (0 for i in xrange(42))
No entanto, para fazer um infinito, preciso "poluir" meu namespace com uma função falsa:
def _my_gen():
while True:
yield 0
my_gen = _my_gen()
Fazer as coisas em um arquivo separado e fazer import
mais tarde não conta.
Eu também sei que itertools.repeat
faz exatamente isso. Estou curioso para saber se existe uma solução de uma linha sem isso.
del _my_gen
se não quiser confundir os dois
my_gen
e depois fazermy_gen = my_gen()
.