Я хочу сделать эквивалент
class Foo(object):
bar = 1
использование API Python C. Другими словами, я хочу создать класс Python, который имеет статическую переменную, с помощью C.
Как я могу сделать это?
Нашёл! Речь идет только об установке элемента tp_dict объекта типа и заполнении добавлением записей в него для каждой из статических переменных. Следующий код на Си создает ту же статическую переменную, что и код на Python выше:
PyTypeObject type;
// ...other initialisation...
type.tp_dict = PyDict_New();
PyDict_SetItemString(type.tp_dict, "bar", PyInt_FromLong(1));
Вы можете передать этот исходный код в Py_CompileString с соответствующими флагами.
Если у вас уже есть класс, вы можете использовать PyObject_SetAttr.
.