Можно ли сделать yield вложенным во второй вызов?
Можно ли в python использовать yield вложенным во второй уровень вызова?
Вот такой вариант выдает ошибку: TypeError: 'NoneType' object is not iterable
def f1():
for i in range(0, 5):
yield i
def f2():
f1()
for i in f2():
print(i)
Хочется, что бы не делать перевызовы, типа такого:
def f1():
for i in range(0, 5):
yield i
def f2():
for i in f1():
yield i
for i in f2():
print(i)
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Могу предложить использовать yield from
def f1():
for i in range(0, 5):
yield i
def f2():
yield from f1()
for i in f2():
print(i)