Что эквивалентно рекурсии в функции с yield? - PullRequest
0 голосов
/ 15 марта 2020

Итак, я изучил генераторы и наткнулся на этот код

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), но затем произошло много странных вещей, вместо того, чтобы сгладить мой список, код возвращает список объектов генератора. Есть ли причина для этого? Что-то мне не хватает в функциях генератора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...