Представление о том, что стек Python и стек C в работающей программе Python смешаны, может вводить в заблуждение.
Стек Python - это нечто полностью отделенное от фактического стека C, используемого интерпретатором.Структуры данных в стеке Python на самом деле являются полными объектами «фрейма» Python (которые могут даже подвергаться анализу и иметь некоторые атрибуты, измененные во время выполнения).Этот стек управляется виртуальной машиной Python, которая сама работает на C и, следовательно, имеет обычную программу на C, уровень машины, стек.
При использовании генераторов и итераторов интерпретатор просто сохраняет соответствующий объект фрейма где-то ещечем в стеке программ Python, и выталкивает его туда, когда выполнение генератора возобновляется.Это «где-то еще» является самим объектом генератора. Вызов метода «next» или «send» для объекта генератора вызывает это.