Есть ли функция Python, которая проверяет, запущен ли генератор?
Я пытаюсь определить функцию генератораmycount()
которые могут быть сброшены с помощью функции генератораsend(0)
как в примере ниже. Все отлично работает, кроме случаев, когда я используюsend(0)
на новом объекте генератора, который нееще не началось. В этом случае это даетTypeError
, Есть ли какая-либо функция, которая проверяет, запустился ли генератор, или я должен пойматьTypeError
и создать новый объект генератора сmycount(0)
в таком случае?
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