Итак, я изучил генераторы и наткнулся на этот код
def flatten(a):
for i in a:
try:
yield from flatten(i)
except TypeError:
yield i
a = list(flatten([1, 2, 2, 3, [1, 2, 68,[[98, 85 ,97],67]]]))
Из того, что я сейчас понимаю, эквивалент вызова функции внутри самой функции выполняется с помощью yield from flatten ( я) в этом случае. Я попытался изменить код, чтобы получить flatten (i), но затем произошло много странных вещей, вместо того, чтобы сгладить мой список, код возвращает список объектов генератора. Есть ли причина для этого? Что-то мне не хватает в функциях генератора?