Я играю с Python C -API. В частности, я хочу посмотреть, смогу ли я проверить, сколько элементов у стека значений в настоящее время. Вот мой код:
#include <Python.h>
#include <frameobject.h>
int test() {
PyFrameObject* f = PyEval_GetFrame();
return (int)(f->f_stacktop - f->f_valuestack);
}
Я не уверен, может ли это сработать, но эта строка существует в исходном коде Python , поэтому я попробовал.
Это обычно приводит к отрицательному числу, что-то вроде -547715639
.
Итак, я явно ошибаюсь, вероятно, потому что то, что описано в документации: "Оценка кадра обычно NULLs (f_stacktop) ". Как правильно это сделать, или это вообще возможно?