Код: Выделить всё
def iter_test(x):
l = [1,2,3,4,5]
default = (i for i in l)
if x:
return default
else:
for i in default:
yield i
def test_iter():
a = iter_test(True)
b = iter_test(False)
print(a, b)
print('a', list(a))
print('b', list(b))
test_iter()
Код: Выделить всё
a []
b [1, 2, 3, 4, 5]
в функцию.
- В первом возвращается сам итератор, значение по умолчанию
. - Во втором методе итератор сначала распаковывался с помощью for,
затем его содержимое выдается одно за другим.
возвращает объект-генератор. Однако генератор,
возвращаемый первым методом, вместо этого пуст.
Поскольку типом является генератор, итератор должен быть
успешно вернулся. Как вместо этого он превращается в пустой
генератор?
Моя версия Python — Python 3.12.2.
Подробнее здесь: https://stackoverflow.com/questions/791 ... omes-empty