Код: Выделить всё
def tricky_generator(n):
for i in range(n):
try:
if i % 2 == 0:
yield i // 2
else:
raise ValueError(f"Odd value: {i}")
except ValueError as e:
print(e)
yield -1
finally:
print(f"Finally block executed for i={i}")
gen = tricky_generator(5)
result = [next(gen) for _ in range(5)]
print("Result:", result)
Подробнее здесь: https://stackoverflow.com/questions/793 ... -this-code
Мобильная версия