Я хочу изменить поведение генератора ниже так, чтобы он выдавал только четные числа.Как я могу это сделать?
Я знаю, что есть более простые, умные способы сделать это.Это искусственная задача по управлению персоналом, когда написанная мной функция
change_generator
не дает желаемого результата. Я могу изменить только change_generator
.
Я не могу изменить positive_integers_generator()
и цикл for ниже.
Могу ли я решить эту проблему с помощью декоратора?
#can't change the body of this function
def positive_integers_generator():
n = 1
while True:
x = yield n
if x is not None:
n = x
else:
n += 1
# can only change this function
def change_generator(generator, n):
for i in generator:
if i%2 == 0:
yield(i)
# can't change this code either
# should print 1, 2, 4, 6, 8
g = positive_integers_generator()
for _ in range(5):
n = next(g)
print(n)
change_generator(g, n)