Existe uma função Python que verifica se um gerador é iniciado?
Eu tento definir uma função geradoramycount()
que pode ser reiniciado com a função de geradorsend(0)
como no exemplo abaixo. Tudo funciona bem, exceto quando eu usosend(0)
em um novo objeto gerador que ainda não foi iniciado. Neste caso, dá umTypeError
. Existe alguma função que verifica se o gerador foi iniciado ou eu tenho que pegar oTypeError
e crie um novo objeto gerador commycount(0)
Nesse caso?
def mycount(value):
while True:
v = yield value
if v == None:
value = value + 1
else:
value = v
g = mycount(3)
print(next(g)) # prints 3
print(next(g)) # prints 4
print(g.send(0)) # prints 0
print(next(g)) # prints 1
print(next(g)) # prints 2
g2 = mycount(3)
g2.send(0)
# TypeError: can't send non-None value to a just-started generator